Справочник Программиста
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
👩‍💻 Библиотека 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
This media is not supported in your browser
VIEW IN TELEGRAM
🗂 Код для автоматического переименования файлов на Python

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

from pathlib import Path


def rename_files(directory, extension, prefix='', suffix=''):
# Преобразуем строку с путём к каталогу в объект Path
dir_path = Path(directory)

# Проверяем, является ли указанный путь каталогом
if not dir_path.is_dir():
# Если нет, выбрасываем исключение
raise NotADirectoryError(f"{directory} не является каталогом")

# Проходимся по всем элементам в каталоге
for file in dir_path.iterdir():
# Проверяем, является ли элемент файлом и соответствует ли расширение
if file.is_file() and (extension is None or file.suffix == extension):
# Формируем новое имя файла с учетом префикса, суффикса и расширения
new_name = f"{prefix}{file.stem}{suffix}{file.suffix}"
# Создаём новый объект Path с новым именем файла
new_file = file.with_name(new_name)

try:
# Переименовываем файл
file.rename(new_file)
# Выводим сообщение об успешном переименовании
print(f"Переименован: {file.name} -> {new_name}")
# Обрабатываем возможные исключения
except Exception as e:
# Выводим сообщение об ошибке
print(f"Ошибка при переименовании {file.name}: {e}")


if __name__ == "__main__":
# Указываем каталог, в котором будут переименовываться файлы
directory = 'files'
# Указываем расширение файлов, которые нужно переименовать
extension = '.txt'
# Указываем префикс для нового имени файла
prefix = 'new_'
# Указываем суффикс для нового имени файла
suffix = '_old'

# Вызываем функцию для переименования файлов
rename_files(directory, extension, prefix, suffix)


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

В данной статье рассмотрим, как работают функции callable() в Python.

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

Библиотека Yarl предоставляет удобные методы для разбора, построения и модификации URL-адресов, делая работу с ними более простой и эффективной.

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

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

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

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

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

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

import PyPDF2


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

# Копируем страницы из исходного файла в новый
for page_num in range(len(reader.pages)):
writer.add_page(reader.pages[page_num])

# Удаляем метаданные
writer._metadata = {}

# Сохраняем PDF с удалёнными метаданными
with open(output_pdf, 'wb') as new_file:
writer.write(new_file)


# Пример использования
input_pdf = "document.pdf"
output_pdf = "output.pdf"
remove_metadata(input_pdf, output_pdf)


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

Библиотека Plotext позволяет строить графики прямо в консоли/терминале.

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

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

# Генерируем данные
x = [1, 2, 3, 4, 5]
y = [10, 5, 7, 2, 8]

# Строим график
plt.plot(x, y)

# Добавляем заголовок и метки осей
plt.title("Пример графика")
plt.xlabel("Ось X")
plt.ylabel("Ось Y")

# Отображаем график
plt.show()


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

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

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

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

Основные возможности библиотеки:
🔵Автоматическое определение шифра: Способна анализировать зашифрованный текст и автоматически определять, каким методом он был зашифрован.
🔵Обширная база шифров: Поддерживаются множество шифров и кодировок, таких как Base64, Hex, Caesar cipher, Vigenère cipher и другие.
🔵Использование вероятностных методов: Использует вероятностные модели и анализ естественного языка для определения возможного расшифрованного текста. Анализирует частотность символов и слов для повышения точности расшифровки.
🔵Расширяемость: Можно добавлять собственные шифры и кодировки, если стандартного набора недостаточно.

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

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

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

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

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

Для удаления и замены фона в коде используются библиотеки rembg и Pillow.

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

from rembg import remove
from PIL import Image

input_path = 'image.png'
background_path = 'background.jpg'
output_path = 'image_output.png'

# Открываем исходное изображение и удаляем фон
open_image = Image.open(input_path)
output = remove(open_image)

# Открываем изображение с новым фоном
background = Image.open(background_path)

# Приводим фон к размеру вырезанного изображения
background = background.resize(output.size)

# Накладываем вырезанное изображение на фон
background.paste(output, (0, 0), output)

# Сохраняем итоговое изображение
background.save(output_path)


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

sqlmap - это инструмент для автоматизированного тестирования веб-приложений на наличие SQL-инъекций. Активно используется в сфере информационной безопасности для проведения тестов на проникновение и защиты от уязвимостей, связанных с SQL-инъекциями.

💉Поддерживает различные типы SQL-инъекций, такие как:
Union-based SQL-инъекции
Boolean-based Blind SQL-инъекции
Time-based Blind SQL-инъекции
Error-based SQL-инъекции
Out-of-band SQL-инъекции

Основные возможности библиотеки:
🔵Автоматическое определение уязвимостей: автоматически анализирует веб-формы, параметры GET и POST для поиска уязвимых к SQL-инъекциям точек.
🔵Многоуровневая поддержка баз данных: Поддерживает множество СУБД, таких как MySQL, PostgreSQL, Oracle, Microsoft SQL Server, SQLite и другие.
🔵Получение данных: Позволяет извлекать данные из уязвимой базы данных (например, таблицы, столбцы и строки).
🔵Запуск команд: Позволяет запускать команды на базе данных (например, получение хэшей паролей, создание новых пользователей и т.д.).
🔵Автоматизация: Легко интегрируется в автоматизированные тесты на безопасность.

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

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

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

Библиотека eyed3 предназначена для работы с метаданными аудиофайлов в формате MP3.

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

Основные возможности библиотеки:
🔵Чтение и изменение тэгов ID3 (ID3v1, ID3v2): Извлечение информации об исполнителе, альбоме, жанре и других метаданных, а также изменение или добавление новых данных в тэги ID3.
🔵Работа с обложками (artwork): Извлечение и добавление изображений в аудиофайл (например, обложек альбомов).
🔵Поддержка встроенных комментариев и текстов песен (lyrics): Можно добавлять или изменять текст песни и комментарии внутри MP3-файла.
🔵Получение технической информации о файле: Информация о битрейте, продолжительности трека, размере файла и т. д.

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

# Открываем MP3 файл
audiofile = eyed3.load("audio.mp3")

# Получаем информацию о тэге
print("Исполнитель:", audiofile.tag.artist)
print("Альбом:", audiofile.tag.album)
print("Название трека:", audiofile.tag.title)

# Изменяем метаданные
audiofile.tag.artist = "Новый артист"
audiofile.tag.album = "Новый альбом"
audiofile.tag.title = "Новое название трека"

# Сохраняем изменения
audiofile.tag.save()


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

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

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

Библиотека marker-pdf предназначена для быстрой и точной конвертации PDF-документов в формат markdown.

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

Основные особенности библиотеки:
🔵Извлечение содержимого: Позволяет извлекать текст, изображения и таблицы из PDF-файлов и конвертировать их в формат markdown. Также может эффективно удалять ненужные заголовки, подзаголовки и другие артефакты из оригинального документа.
🔵Конвертация уравнений: Поддерживает конвертацию большинства уравнений в формат LaTeX, что полезно для научных документов с математическим содержанием.
🔵Поддержка нескольких языков: Поддерживает документы на различных языках, что делает её универсальным инструментом для широкой аудитории.

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

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

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

Для автоматического архивирования старых файлов в коде используются модули os, shutil и time, которые входят в стандартную библиотеку Python.

import os
import shutil
import time


def archive_old_files(source_dir, archive_dir, days_old):
# Проверяем, существует ли директория архива
if not os.path.exists(archive_dir):
# Если нет, создаем её
os.makedirs(archive_dir)

# Время отсечения: текущее время минус количество дней в секундах
cutoff_time = time.time() - (days_old * 86400)

# Проходим по всем файлам в исходной директории
for filename in os.listdir(source_dir):
# Полный путь к файлу
file_path = os.path.join(source_dir, filename)

# Проверяем, является ли путь файлом
if os.path.isfile(file_path):
# Получаем время последнего изменения файла
last_modified_time = os.path.getmtime(file_path)

# Если файл старше времени отсечения
if last_modified_time < cutoff_time:
# Перемещаем файл в архив
shutil.move(file_path, os.path.join(archive_dir, filename))
# Выводим сообщение об архивировании
print(f"Архивировано: {filename}")


source_directory = '/path/to/source' # Исходная директория
archive_directory = 'archive' # Директория архива
days_threshold = 30 # Порог в днях

# Вызов функции архивирования
archive_old_files(source_directory, archive_directory, days_threshold)


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

Утилита Elia предназначена для взаимодействия с большими языковыми моделями (LLMs) и работает полностью в терминале.

Основные особенности:
🔵Интерфейс: Предлагает интуитивно понятный интерфейс, который позволяет пользователям легко взаимодействовать с различными языковыми моделями, такими как ChatGPT, Claude, Llama 3 и другими.
🔵Клавиатурная навигация: Утилита ориентирована на клавиатурное управление, что позволяет пользователям быстро выполнять команды и получать результаты без необходимости использования мыши.
🔵Поддержка нескольких моделей: Поддерживает множество языковых моделей, что делает её универсальным инструментом для различных задач, связанных с обработкой естественного языка.

➡️Установка утилиты: pipx install elia-chat

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

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

Библиотека Yellowbrick предназначена для визуализации данных и специально разработана для улучшения процесса машинного обучения (ML).

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

Строится на основе библиотек Matplotlib и Scikit-Learn, что делает её совместимой с привычными инструментами и подходами в экосистеме Python для машинного обучения.

Основные возможности библиотеки:
🔵Визуализация данных:
🟢Feature Analysis (Анализ признаков): Позволяет исследовать и анализировать различные признаки (фичи) в данных.
🟢Class Balance (Баланс классов): Визуализирует распределение классов в задачах классификации, что помогает понять, насколько сбалансированы данные.
🔵Визуализация моделей:
🟢ROC-AUC кривая: Построение ROC кривой и вычисление AUC для оценки производительности классификационных моделей.
🟢Confusion Matrix (Матрица ошибок): Отображает правильные и неправильные предсказания модели, показывая, какие классы чаще всего путаются.
🟢Prediction Error (Ошибка предсказания): Визуализирует отклонение предсказанных значений от реальных для моделей регрессии.
🟢Residuals Plot (График остатков): Помогает оценить остатки модели регрессии, чтобы понять, хорошо ли она справляется с задачей.
🔵Диагностика моделей:
🟢Learning Curve (Кривая обучения): Показывает, как изменяется качество модели в зависимости от количества обучающих данных.
🟢Validation Curve (Кривая валидации): Помогает выбрать оптимальные значения гиперпараметров, показывая зависимость качества модели от значения определенного гиперпараметра.
🟢Silhouette Plot (Силуэтный график): Для оценки качества кластеризации с помощью коэффициента силуэта.

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

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

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