Справочник Программиста
6.29K subscribers
1.36K photos
386 videos
64 files
1.71K 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
👀 Библиотека Ibis в Python

Ibis - это библиотека для аналитики данных в Python, предназначенная для упрощения работы с большими данными и абстрагирования сложности различных систем управления базами данных (СУБД).

Её основная цель предоставить высокоуровневый интерфейс для написания запросов к базам данных в Python с использованием синтаксиса, напоминающего Pandas.

Основные особенности библиотеки:
🔵Абстрагирование от SQL: позволяет писать запросы на языке, схожем с Pandas, что значительно упрощает работу с большими данными, не заставляя разработчика вручную писать SQL-запросы.
🔵Совместимость с различными системами хранения данных: поддержка таких СУБД, как PostgreSQL, MySQL, Clickhouse, BigQuery, Impala и многих других. Интеграция с аналитическими системами, включая Apache Spark, Dask и другие распределённые системы.
🔵Ленивая оценка: не выполняет запросы сразу. Вместо этого, она строит выражения, которые можно преобразовать в SQL-запрос, и только когда явно требуется результат (например, execute()), запрос отправляется в базу данных.
🔵Возможность работы с большими данными: оптимизирована для обработки огромных наборов данных, позволяя пользователю эффективно работать с ними на кластерах данных без необходимости загружать все данные в память.

➡️Установка библиотеки: pip install 'ibis-framework[duckdb,examples]'

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

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

Библиотека Boltons предоставляет набор модулей с утилитами и функциями для повседневной разработки. Cодержит коллекцию функций и классов, которые можно рассматривать как расширение стандартной библиотеки Python.

Особенностью Boltons является то, что она не привносит новых зависимостей и сосредоточена на предоставлении простых и удобных инструментов.

Преимущества библиотеки:
🔵Легкость и простота: Не добавляет лишних зависимостей, что делает её быстрой и компактной.
🔵Модульность: Все утилиты разделены по функциональным модулям, что позволяет использовать только нужные компоненты.
🔵Документированность: Хорошо документирована, что облегчает её освоение.

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

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

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

Библиотека logfire разработана для удобного и структурированного логирования. Предназначена для работы с библиотекой Pydantic и позволяет автоматически генерировать лог-сообщения из классов Pydantic.

Основные возможности библиотеки:
🔵Автоматическое логирование: Позволяет автоматически добавлять контекстные данные в логи, используя модели Pydantic. Это упрощает процесс логирования, поскольку вам не нужно вручную добавлять поля в каждое сообщение.
🔵Структурированные логи: Поддерживает структурированные логи, что позволяет лучше анализировать данные.
🔵Интеграция с существующими библиотеками: Может быть интегрирован с другими библиотеками для логирования, такими как logging, что позволяет использовать его в уже существующих проектах без необходимости полной переработки логирования.
🔵Гибкая конфигурация: Пользователи могут настраивать, какие поля и данные будут включены в логи, а также управлять форматом сообщений.
🔵Поддержка типов: Благодаря Pydantic, logfire обеспечивает строгую типизацию данных, что помогает избежать ошибок и улучшает читаемость кода.

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

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

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

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

Для создания временных файлов в коде используется модуль tempfile, для создания контекстного менеджера - contextlib, а для работы с файловой системой и удаления файла - pathlib.

import tempfile
from contextlib import contextmanager
from pathlib import Path
import time


@contextmanager
def temporary_file(suffix='', prefix='tmp', dir=None):
temp_file = tempfile.NamedTemporaryFile(suffix=suffix, prefix=prefix, dir=dir, delete=False)
try:
# Возвращаем имя временного файла
yield temp_file.name
finally:
# Закрываем файл перед удалением
temp_file.close()
time.sleep(5)
try:
# Используем unlink() для удаления файла
Path(temp_file.name).unlink()
except OSError as e:
print(f"Ошибка при удалении файла {temp_file.name}: {e}")


# Пример использования
if __name__ == "__main__":
with temporary_file(suffix='.txt') as temp_file_name:
print(f"Создан временный файл: {temp_file_name}")
# Работа с временным файлом
try:
with open(temp_file_name, 'w', encoding='utf-8') as f:
f.write("Привет, мир!")
except Exception as e:
print(f"Ошибка при записи в файл {temp_file_name}: {e}")

print("Временный файл удалён автоматически.")


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

Библиотека fpdf2 — это инструмент для создания PDF-документов программным способом. Является обновлённой и расширенной версией оригинальной библиотеки FPDF, которая долгое время использовалась для тех же целей.

В отличие от других библиотек, таких как ReportLab, fpdf2 фокусируется на простоте использования и лёгкости в освоении.

Основные возможности библиотеки:
🔵Создание PDF с нуля: позволяет легко создавать новые PDF-документы с текстом, изображениями, таблицами и графикой.
🔵Поддержка различных форматов шрифтов: TrueType, OpenType, CID-encoded шрифты и другие.
🔵Многостраничные документы: можно добавлять множество страниц и контролировать их параметры (размер, ориентацию и т. д.).
🔵Создание таблиц и графиков: упрощает генерацию таблиц и добавление диаграмм.
🔵Встраивание изображений: поддержка различных форматов изображений, включая JPEG, PNG и GIF.
🔵Международные символы: поддержка Юникода позволяет легко работать с текстами на разных языках.
🔵Гибкость настройки: позволяет точно контролировать внешний вид документа — размер страниц, поля, выравнивание текста, цвета и так далее.

Пример использования библиотеки:
from fpdf import FPDF

# Создаём PDF-документ
pdf = FPDF()
pdf.add_page()

# Устанавливаем шрифт
pdf.set_font("helvetica", size=12)

# Добавляем текст
pdf.cell(200, 10, text="Hello, World!", align='C')

# Сохраняем PDF
pdf.output("hello_world.pdf")


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

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

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

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

Особенно полезна для обнаружения паттернов, аномалий и сегментации временных рядов.

Основные функции библиотеки:
🔵Matrix Profile (матричный профиль): Матричный профиль - это вектор минимальных расстояний между подокнами временного ряда. Данный метод позволяет обнаруживать повторяющиеся шаблоны (мотивы) и аномалии в данных.
🔵MOTIF Discovery (поиск мотивов): Помогает находить повторяющиеся структуры (мотивы) в данных временных рядов.
🔵Discord Detection (обнаружение аномалий): Discords - это подстроки временных рядов, которые сильно отличаются от всех остальных. stumpy эффективно ищет такие уникальные аномалии, что важно для задач мониторинга и прогнозирования.
🔵Segment Discovery (сегментация): Используется для разбивки временного ряда на сегменты на основе структурных изменений в данных.

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

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

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

Piccolo
— это легковесный ORM (Object-Relational Mapper) для Python, который упрощает работу с базами данных. Был разработан для того, чтобы предоставлять интуитивно понятный и быстрый интерфейс для взаимодействия с базами данных, при этом оставаясь производительным и гибким.

Основные особенности:
🔵Асинхронность: Поддерживает асинхронное выполнение запросов, что делает его идеальным для использования в современных веб-приложениях, особенно с библиотеками, такими как FastAPI и Starlette, которые также поддерживают асинхронные вызовы.
🔵Простота использования: Ориентирован на простоту. Создание моделей и выполнение запросов интуитивно понятно. Он предлагает лаконичный синтаксис для работы с моделями данных.
🔵Миграции: Поддерживает систему миграций, что позволяет легко изменять структуру базы данных (добавлять или изменять таблицы, поля и т.д.) и отслеживать изменения в базе.
🔵Интеграция с другими библиотеками: Легко интегрируется с популярными библиотеками и фреймворками Python для разработки веб-приложений, такими как FastAPI, Sanic, Tornado, и может использоваться с библиотеками для тестирования, например, pytest.
🔵Реактивные API: Позволяет создавать модели и быстро настраивать эндпоинты для CRUD-операций через автоматические API.

➡️Установка с помощью драйвера PostgreSQL: pip install 'piccolo[postgres]'
➡️Установка с помощью драйвера SQLite: pip install 'piccolo[sqlite]'
➡️Установка со всеми необязательными зависимостями (самая простая): pip install 'piccolo[all]'

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

➡️Справочник Программиста. Подписаться
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥4❤‍🔥2
Media is too big
VIEW IN TELEGRAM
Код для преобразования изображений из указанной папки в один PDF-файл на Python

Для преобразования изображений из указанной папки в один PDF-файл в коде используются библиотеки pathlib, Pillow и fpdf.

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

from pathlib import Path
from PIL import Image, UnidentifiedImageError
from fpdf import FPDF


def images_to_pdf(image_folder, output_pdf):
# Создаем объект пути к папке с изображениями
image_folder_path = Path(image_folder)
# Создаем новый объект PDF
pdf = FPDF()

# Проверяем, существует ли указанная папка и является ли она директорией
if not image_folder_path.exists() or not image_folder_path.is_dir():
raise FileNotFoundError(f"Папка '{image_folder}' не найдена или не является директорией.")

# Проходимся по каждому файлу в папке
for image_file in image_folder_path.iterdir():
# Проверяем, является ли элемент файлом и имеет ли он нужное расширение
if image_file.is_file() and image_file.suffix.lower() in {'.jpg', '.jpeg', '.png'}:
try:
# Пытаемся открыть изображение
with Image.open(image_file) as img:
img_width, img_height = img.size # Получаем размеры изображения

# Рассчитываем масштабирование для страницы
pdf.add_page() # Добавляем новую страницу в PDF
# Вставляем изображение в PDF с подогнанными размерами
pdf.image(str(image_file), x=0, y=0, w=210, h=(210 * img_height / img_width))
except UnidentifiedImageError:
# Предупреждение, если файл не является изображением
print(f"Предупреждение: Файл {image_file} не является допустимым изображением и будет пропущен.")
except Exception as e:
# Обрабатываем любые другие ошибки при обработке файла
print(f"Ошибка при обработке файла {image_file}: {e}")

# Если ни одной страницы не было добавлено, выводим ошибку
if pdf.page_no() == 0:
raise ValueError("Не удалось найти ни одного изображения для добавления в PDF.")

# Сохраняем PDF-файл с указанным именем
pdf.output(str(output_pdf))
print(f"PDF-файл успешно создан: {output_pdf}")


# Пример использования функции
image_folder = 'images' # Папка с изображениями
output_pdf = 'output.pdf' # Имя выходного PDF-файла

try:
images_to_pdf(image_folder, output_pdf)
except (FileNotFoundError, ValueError) as e:
# Обработка ошибок: если папка не найдена или нет изображений для обработки
print(f"Ошибка: {e}")


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

Библиотека emval — это высокопроизводительный валидатор email-адресов для Python, написанный на языке Rust.

Основное преимущество библиотеки заключается в её скорости, которая в 100-1000 раз выше, чем у традиционных валидаторов.

Основные характеристики библиотеки:
🔵Высокая производительность: Обещает значительное ускорение по сравнению с традиционными валидаторами email.
🔵Поддержка стандартов: Проверяет синтаксис адресов на соответствие стандартам RFC 5322 (синтаксис email-адресов) и RFC 6531 (поддержка международных символов).
🔵Международные адреса: Поддерживает адреса с международными символами (IDN) и позволяет использовать нестандартные символы в локальной части адреса.
🔵Нормализация адресов: Автоматически нормализует адреса, что включает:
🟢Приведение доменных имен к нижнему регистру.
🟢Нормализацию символов Unicode в предкомпозированные формы.
🟢Удаление лишних символов, таких как кавычки и обратные слэши.
🔵Проверка на недопустимые символы: Отклоняет недопустимые и небезопасные символы, что помогает избежать проблем с отображением и интерпретацией.

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

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

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

Для конвертации CSV в JSON в коде используются стандартные модули csv и json.

import csv
import json


def csv_to_json(csv_file_path, json_file_path):
# Открываем CSV файл
with open(csv_file_path, mode='r', encoding='utf-8') as csv_file:
# Считываем данные из CSV
csv_reader = csv.DictReader(csv_file)
# Преобразуем в список словарей
data = [row for row in csv_reader]

# Записываем данные в JSON файл
with open(json_file_path, mode='w', encoding='utf-8') as json_file:
json.dump(data, json_file, indent=4, ensure_ascii=False)


# Пример использования
csv_file_path = 'data.csv' # Указываем путь к CSV файлу
json_file_path = 'data.json' # Указываем путь для сохранения JSON файла
csv_to_json(csv_file_path, json_file_path)


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

Langflow
— это open-source проект, который предоставляет интерактивную среду для создания и настройки различных систем обработки естественного языка на основе LLM (Large Language Models), таких как GPT и другие.

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

Основные особенности проекта:
🔵Графический интерфейс: предлагает интуитивно понятный графический интерфейс, который позволяет пользователям визуально проектировать системы взаимодействия с языковыми моделями.
🔵Поддержка LLM (Large Language Models): предоставляет возможности для работы с различными крупными языковыми моделями, включая GPT и их производные.
🔵Конфигурация и кастомизация: пользователи могут настраивать параметры моделей, такие как температура, длина генерируемого текста и другие гиперпараметры, что дает большую гибкость при решении специфических задач.
🔵Интеграция с API: легко интегрируется с различными API, что позволяет разработчикам быстро подключать внешние сервисы, базы данных и другие источники данных для обогащения контекста обработки запросов.
🔵Платформа для обучения и тестирования: инструмент поддерживает интерактивное тестирование и обучение моделей в реальном времени, что позволяет сразу видеть результаты работы системы и при необходимости вносить изменения.

➡️Установка библиотеки: python -m pip install langflow -U

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

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

Библиотека Pare предназначена для упрощения развертывания серверных функций (AWS Lambda) вместе с веб-приложениями.

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

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

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

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

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

Библиотека tkVideoPlayer позволяет воспроизводить видео в графических интерфейсах, созданных с помощью библиотеки tkinter. Упрощает интеграцию видеоплееров в приложения.

Основные возможности библиотеки:
🔵Поддержка различных форматов: Поддерживает воспроизведение видеофайлов в различных форматах (например, MP4, AVI и т.д.), в зависимости от установленного кодека.
🔵Простота использования: Имеет простой интерфейс, который легко интегрируется в приложение на tkinter.
🔵Управление воспроизведением: Предоставляет методы для управления воспроизведением видео, такие как воспроизведение, пауза, остановка и перемотка.
🔵События: Возможность обрабатывать события, такие как окончание воспроизведения видео, что позволяет вам реагировать на эти события в приложении.

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

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

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

Библиотека wxPython предназначена для создания графических интерфейсов (GUI). Предоставляет обёртку для библиотеки wxWidgets, которая написана на C++ и является кросс-платформенной.

Основные особенности библиотеки:
🔵Кросс-платформенность: Позволяет создавать приложения, которые работают на разных платформах, при этом интерфейс будет выглядеть нативно для каждой из них.
🔵Широкий набор компонентов: Предоставляет большое количество виджетов (кнопки, текстовые поля, списки, панели и т.д.), которые могут быть использованы для создания полноценного интерфейса пользователя.
🔵Простота использования: Благодаря Python, программирование GUI становится проще, чем на низкоуровневых языках, таких как C++.
🔵Расширяемость: Возможность создавать собственные виджеты или изменять поведение существующих.
🔵Поддержка событийно-ориентированного программирования: Использует механизм обработки событий, что упрощает написание интерактивных приложений.

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

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

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

Для сканирования WI-FI сетей в коде используется библиотека pywifi.

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

import pywifi
import time


def scan_wifi():
wifi = pywifi.PyWiFi()
# Получаем первый интерфейс Wi-Fi
iface = wifi.interfaces()[0]
# Запускаем сканирование
iface.scan()
# Ждём завершения сканирования
time.sleep(2)
# Получаем результаты сканирования
results = iface.scan_results()

print("Найденные Wi-Fi сети:")
for network in results:
print(f"SSID: {network.ssid}, MAC: {network.bssid}, Сигнал: {network.signal} dBm")


# Запуск функции
scan_wifi()


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

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

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

Основные возможности библиотеки:
🔵Моделирование роботов: включает множество моделей роботов, таких как UR5, Puma 560, Baxter и других. Можно также создавать свои собственные модели с заданными параметрами.
🔵Симуляция кинематики и динамики: поддерживает прямую и обратную кинематику, а также вычисления динамики роботов. Это позволяет рассчитывать движения, траектории и силы, необходимые для их выполнения.
🔵Алгоритмы планирования траекторий: включает инструменты для планирования траекторий в пространстве позиций и ориентаций, позволяя задавать сложные пути для роботов.
🔵Поддержка ROS: интегрируется с ROS (Robot Operating System), что делает возможной работу с реальными роботами и обмен данными в реальном времени.
🔵3D-визуализация и симуляция: поддерживает визуализацию моделей роботов и их движений в 3D-пространстве, что упрощает тестирование и отладку алгоритмов.

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

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

➡️Справочник Программиста. Подписаться
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥9❤‍🔥2
🖼 IOPaint — это инструмент для удаления и замены объектов на изображениях с использованием современных моделей ИИ. Позволяет удалять объекты, исправлять дефекты, стирать или заменять элементы с помощью моделей, таких как Stable Diffusion.

Поддерживает Windows, macOS и Linux, включая работу на GPU и Apple Silicon, и предоставляет удобный веб-интерфейс.

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

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

Пример запуска:
iopaint start --model=lama --device=cpu --port=8080


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

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