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

Библиотека Progress предназначена для создания индикаторов прогресса в консольных приложениях.

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

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

Пример использования библиотеки:
from progress.bar import Bar

# Создаём объект Bar с названием 'Processing' и максимальным значением 1,000,000
bar = Bar('Processing', max=1000000)
# Запускаем цикл от 0 до 999,999 (всего 1,000,000 итераций)
for i in range(1000000):
# Увеличиваем прогресс бар на 1 для каждой итерации
bar.next()
# Завершаем прогресс бар, когда все итерации завершены
bar.finish()


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

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

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

Для объединения CSV-файлов в один в коде используются библиотеки pandas и os.

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

import pandas as pd
import os

# Указываем папку, где хранятся файлы
folder_path = 'путь_к_вашей_папке'

# Получаем список всех CSV файлов в папке
csv_files = [file for file in os.listdir(folder_path) if file.endswith('.csv')]

# Создаем пустой список для хранения DataFrame'ов
data_frames = []

# Читаем каждый CSV файл и добавляем его в список
for file in csv_files:
file_path = os.path.join(folder_path, file)
df = pd.read_csv(file_path)
data_frames.append(df)

# Объединяем все DataFrame'ы в один
combined_df = pd.concat(data_frames, ignore_index=True)

# Сохраняем результат в новый CSV файл
combined_df.to_csv('объединенный_файл.csv', index=False)


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

Библиотека Marshmallow предназначена для сериализации/десериализации объектов Python, а также их валидации.

Часто используется в веб-приложениях для преобразования сложных типов данных в простые структуры, например, JSON или словари, и наоборот.

Сериализация - преобразование сложных объектов Python (например, экземпляров классов) в простые типы данных (словари, JSON).

Десериализация - преобразование данных из форматов JSON или словарей Python обратно в объекты Python.

Валидация данных - при десериализации Marshmallow автоматически проверяет данные на соответствие определённым требованиям (например, типам полей, обязательности полей и т.д.).


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

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

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