Справочник Программиста
6.28K subscribers
1.36K photos
387 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
Проет pixelSplat на Python

Проект pixelSplat предназначен для реконструкции 3D-изображений на основе пары 2D-изображений, используя метод Gaussian splatting.

Установка (Python 3.10+):
$ git clone https://github.com/dcharatan/pixelsplat.git

$ cd pixelsplat

$ python -m venv venv

$ source venv/bin/activate

$ pip install -r requirements.txt


📱 Репозиторий
💻 Сайт проекта

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

Библиотека hotpdf предназначена для работы с PDF-документами с акцентом на производительность и экономию памяти.

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


Основные возможности библиотеки:
🔵Извлечение текста: Позволяет извлекать текст как со всей страницы, так и с отдельных блоков PDF-файла.
🔵Поиск текста: Предоставляет возможности для поиска конкретных фрагментов текста в документе.
🔵Слияние PDF-файлов: Функция слияния нескольких PDF-документов в один.
🔵Оптимизация потребления памяти: Использует различные подходы (например, sparse matrix), чтобы снижать объём потребляемой памяти при работе с большими файлами, такими как книги на сотни страниц​.

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

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

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

Для извлечения метаданных в коде используется библиотека pymediainfo.

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

from pymediainfo import MediaInfo


def get_detailed_video_metadata(file_path):
# Парсим видеофайл для получения всех доступных метаданных
media_info = MediaInfo.parse(file_path)

# Создаём список для хранения метаданных по каждому треку
detailed_metadata = []

# Проходим по каждому треку в файле
for track in media_info.tracks:
# Собираем все доступные атрибуты трека в виде словаря
track_info = {
'track_type': track.track_type, # Тип трека (например, видео, аудио, текст и т.д.)
'format': track.format, # Формат кодирования
'duration': track.duration, # Продолжительность в миллисекундах (если доступна)
'bit_rate': track.bit_rate, # Битрейт (если доступен)
'width': track.width, # Ширина видео (если это видеотрек)
'height': track.height, # Высота видео (если это видеотрек)
'frame_rate': track.frame_rate, # Частота кадров (если это видеотрек)
'channels': track.channel_s, # Количество каналов (если это аудиотрек)
'sampling_rate': track.sampling_rate, # Частота дискретизации (если это аудиотрек)
'language': track.language, # Язык трека (если указан)
'codec_id': track.codec_id, # Идентификатор кодека
'compression_mode': track.compression_mode, # Режим сжатия
'default': track.default, # Является ли этот трек основным по умолчанию
'forced': track.forced # Принудительно ли используется этот трек
}

# Убираем из словаря пустые значения
track_info = {k: v for k, v in track_info.items() if v is not None}

# Добавляем информацию о треке в общий список
detailed_metadata.append(track_info)

# Возвращаем список метаданных
return detailed_metadata


# Пример использования
file_path = 'video.mp4' # Указываем путь к видео-файлу
# Получаем метаданные
metadata = get_detailed_video_metadata(file_path)
for track in metadata:
# Выводим метаданные каждого трека
print(track)


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

Библиотека jurigged предназначена для "горячей перезагрузки кода" во время выполнения программы. Она позволяет вносить изменения в код без остановки и перезапуска программы.

Основные особенности библиотеки:
🔵Горячая перезагрузка кода: Отслеживает изменения в исходных файлах программы и автоматически применяет их к работающему приложению.
🔵Простота использования: Для начала использования достаточно импортировать jurigged и запустить в нужном модуле.
🔵Отслеживание изменений: Следит за изменениями в .py файлах и пытается аккуратно обновить функции и классы, чтобы минимизировать влияние на текущее состояние программы.
🔵Поддержка многопоточных и асинхронных приложений: Работает с многопоточными приложениями, что позволяет изменять код в сложных системах, таких как веб-серверы или программы с использованием asyncio.
🔵Совместимость: Работает с Python 3.x и поддерживает различные фреймворки и библиотеки.

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

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

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

Библиотека MeTube - это веб-интерфейс для youtube-dl. Предназначена для загрузки видео и аудио с различных видео-платформ, в первую очередь с YouTube.

Функционал библиотеки:
🔵Загрузка видео и аудио: Пользователи могут скачивать видео в разных форматах и разрешениях. Также можно извлекать только аудиодорожки.
🔵Поддержка нескольких источников: Может работать не только с YouTube, но и с другими видео-платформами.
🔵Управление качеством: Возможность выбирать качество видео, от самого низкого до высокого (HD, 4K).
🔵Автоматизация: Хорошо интегрируется в скрипты и программы для автоматического скачивания или обработки видео.
🔵Конвертация форматов: Загрузку видео можно настроить на автоматическое преобразование файлов в нужный формат, например, MP3 для аудио.

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

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

Для удаления страниц из PDF-файла в коде используется библиотека PyPDF2.

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

import PyPDF2


def remove_pages(input_pdf, output_pdf, pages_to_remove):
# Открываем исходный PDF документ
with open(input_pdf, 'rb') as file:
reader = PyPDF2.PdfReader(file)
writer = PyPDF2.PdfWriter()

# Перебираем все страницы
for page_num in range(len(reader.pages)):
# Если номер страницы не в списке для удаления, добавляем её в новый PDF
if page_num not in pages_to_remove:
writer.add_page(reader.pages[page_num])

# Сохраняем новый PDF документ
with open(output_pdf, 'wb') as output_file:
writer.write(output_file)


# Исходный файл
input_pdf = 'document.pdf'
# Файл с удалёнными страницами
output_pdf = 'output.pdf'
# Номера страниц для удаления (начиная с 0)
pages_to_remove = [0]

remove_pages(input_pdf, output_pdf, pages_to_remove)


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

diskcache - это лицензированная Apache2 библиотека кэша с поддержкой диска и файлов, совместимая с Django.

Основные особенности библиотеки:
🔵Хранение на диске: Кэш хранится на диске, а не в оперативной памяти, что позволяет работать с большими объемами данных.
🔵Поддержка многопоточности и многопроцессности: Кэширование безопасно для работы с несколькими потоками и процессами.
🔵TTL (Time To Live): Можно указать время жизни (TTL) для каждого кэшированного элемента. Это позволяет автоматически очищать устаревшие данные.
🔵Постоянство данных: Даже после завершения работы программы данные кэша остаются на диске и могут быть использованы в следующий раз при запуске программы.
🔵API совместимо с dict: Поддерживает интерфейс, аналогичный словарю Python, что делает её использование простым и интуитивно понятным.
🔵Оптимизировано для производительности: Внутренне библиотека использует оптимизированные структуры данных для быстрого доступа к элементам.

Пример использования библиотеки:
import time
import diskcache as dc

# Инициализируем кэш в указанной директории
cache = dc.Cache('mycache')


# Функция, имитирующая дорогостоящие вычисления
@cache.memoize(expire=60) # Кэшируем результат на 60 секунд
def expensive_computation(x, y):
print(f"Выполняю тяжелые вычисления для ({x}, {y})...")
time.sleep(5) # Имитация долгих вычислений
return x * y


# Первый вызов функции будет долгим, так как вычисления не кэшированы
start_time = time.time()
result = expensive_computation(5, 10)
print(f"Результат: {result}, время выполнения: {time.time() - start_time} секунд")

# Второй вызов функции с теми же параметрами будет быстрым, так как результат будет взят из кэша
start_time = time.time()
result = expensive_computation(5, 10)
print(f"Результат: {result}, время выполнения: {time.time() - start_time} секунд")

# Вызов с новыми параметрами снова приведет к вычислениям, так как таких данных еще нет в кэше
start_time = time.time()
result = expensive_computation(7, 3)
print(f"Результат: {result}, время выполнения: {time.time() - start_time} секунд")

# Закрываем кэш, когда больше не нужен
cache.close()


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

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

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

Telethon - это асинхронная библиотека, предназначенная для взаимодействия с API Telegram и позволяет создавать ботов и клиентов для работы с Telegram через протокол MTProto.

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

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

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

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

В данном shorts напишем код для определения широты и долготы по адресу.

➡️Справочник Программиста. Подписаться
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5❤‍🔥2🔥2
Справочник Программиста
📺 Определение координат местоположения по адресу на Python В данном shorts напишем код для определения широты и долготы по адресу. ➡️Справочник Программиста. Подписаться
Код для определение координат местоположения по адресу на Python

Для определение координат местоположения по адресу в коде используется библиотека geopy.

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

from geopy.geocoders import Nominatim

# Создаём экземпляр класса Nominatim
geolocator = Nominatim(user_agent="user")

# Определяем координаты местоположения "Рим, Колизей"
location = geolocator.geocode("Рим, Колизей")

# Выводим широту и долготу местоположения
print(location.latitude, location.longitude)


➡️Справочник Программиста. Подписаться
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥8👍5❤‍🔥2🤨1
🪙Симулятор монетки (орёл/решка) на Python

В данной статье напишем код симулятора монетки (орёл/решка) на Python.

P.S. Да, я вспомнил что у меня есть сайт, поэтому буду стараться продолжать пополнять его новыми статьями как и раньше! 😉

➡️Справочник Программиста. Подписаться
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥9❤‍🔥2🎉2
💻 django-unfold - это тема для кастомизации админ-панели Django. Использует Tailwind CSS для улучшения визуальной части админки и поддерживает светлый и тёмный режимы.

Основные функции включают настраиваемое боковое меню, поддержку WYSIWYG-редактора, табы для моделей и форм, встроенные фильтры, работу с PostgreSQL ArrayField, возможность изменять цветовую схему и многое другое.

Совместима с родной админкой Django и предлагает расширенные возможности для разработки панелей управления.

➡️Установка:
pip install django-unfold
poetry add django-unfold


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

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

Библиотека pyinfra предназначена для выполнения команд на удалённых серверах, управления конфигурацией, развертывания приложений и прочих задач, связанных с управлением инфраструктурой.

Основные особенности библиотеки:
🔵Инфраструктура как код (IaC): Поддерживает подход "инфраструктура как код", где конфигурации систем и серверов описываются в виде кода, что облегчает управление и поддержку больших и сложных инфраструктур.
🔵Лёгкость в использовании: Имеет простой и понятный API, что делает её доступной как для системных администраторов, так и для разработчиков.
🔵Поддержка множества хостов: Позволяет управлять одновременно множеством серверов (хостов), выполняя команды на нескольких системах параллельно.
🔵Без необходимости в агентах: В отличие от некоторых систем управления конфигурацией (например, Ansible или Puppet), для работы pyinfra не требует установки агентов на управляемые машины. Она использует стандартный SSH для взаимодействия с серверами.
🔵Модули и операции: Предоставляет большое количество встроенных модулей и операций, таких как работа с файлами, пакетами, пользователями и группами, настройками сетевых интерфейсов и многими другими аспектами системной конфигурации.
🔵Интеграция с существующими инструментами: Можно использовать совместно с другими инструментами управления инфраструктурой, такими как Docker, Terraform и т.д.

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

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

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

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

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

Основные возможности библиотеки:
🔵Обработка потоков данных в реальном времени: Позволяет обрабатывать непрерывные потоки данных, поступающие из различных источников (например, очереди сообщений, базы данных или внешние API).
🔵Поддержка пакетной обработки: Поддерживает пакетную обработку данных, что позволяет работать с большими объемами данных в уже готовых наборах.
🔵Функциональная модель программирования: Использует функциональный подход к построению логики обработки данных, где пользователь описывает логику обработки в виде набора преобразований над данными (например, map, reduce, windowing и т.д.).
🔵Распределенная обработка: Благодаря встроенной поддержке распределения, можно масштабировать вычисления на несколько узлов, увеличивая пропускную способность системы.
🔵Сохранение состояния: Для обеспечения устойчивости и обработки с сохранением состояния, Bytewax поддерживает механизм хранения состояния.
🔵Интеграции с популярными источниками данных: Поддерживает интеграцию с такими системами, как Kafka, Pulsar и другими популярными платформами для передачи сообщений и работы с данными в реальном времени.

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

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

➡️Справочник Программиста. Подписаться
Please open Telegram to view this post
VIEW IN TELEGRAM
❤‍🔥5🔥3
📺 Сортировка пузырьком на Python за 60 секунд

В данном shorts узнаем как работает сортировка пузырьком.

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

Для визуализации в коде используется библиотека matplotlib, а для генерации случайных значений - numpy.

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

import matplotlib.pyplot as plt
import numpy as np


def bubble_sort(arr):
n = len(arr)
for i in range(n):
for j in range(0, n - i - 1):
if arr[j] > arr[j + 1]:
arr[j], arr[j + 1] = arr[j + 1], arr[j]
draw(arr)
return arr


def draw(arr):
plt.clf() # Очистка текущей фигуры
plt.bar(range(len(arr)), arr, color='blue')
plt.ylim(0, max(arr) + 1)
plt.pause(0.9) # Увеличенная пауза для визуализации


# Пример использования
if __name__ == "__main__":
np.random.seed(0) # Для воспроизводимости
data = np.random.randint(1, 20, size=10)

plt.ion() # Включение интерактивного режима
bubble_sort(data)
plt.ioff() # Отключение интерактивного режима
plt.show() # Показать финальную сортировку


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

Библиотека Rawdog представляет собой ассистента в командной строке (CLI), который генерирует и автоматически выполняет Python-скрипты в ответ на запросы пользователя.

Особенности библиотеки:
🔵Генерация и выполнение скриптов: На основе введённых пользователем команд автоматически создает Python-скрипты и тут же их выполняет.
🔵Режим взаимодействия: Есть два режима работы, одноразовое выполнение команды или режим диалога, когда ассистент продолжает генерировать и выполнять команды до завершения сессии.
🔵Поддержка различных моделей: По умолчанию используется GPT-4 Turbo, но можно выбрать другие модели (например, GPT-3.5 или локальные модели), изменив настройки конфигурации.
🔵Безопасность: Существует опция --leash, которая позволяет пользователю просматривать и утверждать скрипты перед их выполнением, чтобы избежать потенциально вредных команд​.

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

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

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