Справочник Программиста
6.28K subscribers
1.37K 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
This media is not supported in your browser
VIEW IN TELEGRAM
👀 Библиотека tkintermapview в Python

Библиотека tkintermapview предоставляет виджет для отображения карт в приложениях, разработанных с использованием tkinter. Позволяет интегрировать карты на основе OpenStreetMap.

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

Пример использования библиотеки:
import tkinter as tk
from tkintermapview import TkinterMapView

# Создание главного окна
root = tk.Tk()
root.title("Пример TkinterMapView")

# Создание виджета карты
map_view = TkinterMapView(root, width=800, height=600, corner_radius=0)
map_view.pack(fill="both", expand=True)

# Установка начального местоположения и уровня масштабирования
map_view.set_position(55.030204, 82.920430) # Новосибирск
map_view.set_zoom(10)

# Добавление маркера
map_view.set_marker(55.030204, 82.920430, "Новосибирск")

# Запуск главного цикла приложения
root.mainloop()


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

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

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

Библиотека vectorlite-py предназначена для быстрого поиска векторов в базе данных SQLite.

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

Основные возможности библиотеки:
🔵Хранение и запрос векторов: Векторы могут храниться в виде BLOB (двоичных данных) в таблицах SQLite, что позволяет использовать запросы для поиска ближайших соседей.
🔵Поиск методом грубой силы: Функция vector_distance() может выполнять точный поиск путем сравнения расстояний между векторами, используя такие метрики, как косинусное расстояние и расстояние L2.
🔵Виртуальные таблицы: Поддерживает виртуальные таблицы, которые создают индексы для ускорения поиска. Для более быстрого поиска используются графы HNSW (иерархические навигационные маломирные графы).

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

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

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

Обширная коллекцию алгоритмов и структур данных, реализованных на Python.

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

📱 Ссылка на репозиторий

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

Поддерживает несколько фреймворков, включая Tkinter, CustomTkinter и Kivy (в будущем также планируется поддержка PySide).

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

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

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