Библиотека Dramatiq в Python
Библиотека
Она позволяет выполнять долгие и ресурсоемкие операции в фоновом режиме, освобождая основной поток выполнения для более важных задач.
Основные особенности библиотеки:
🔵 Асинхронность: Поддерживает асинхронное выполнение задач, что позволяет обрабатывать множество задач параллельно.
🔵 Простота использования: Имеет интуитивно понятный API, что делает ее доступной для разработчиков любого уровня.
🔵 Поддержка брокеров сообщений: Поддерживает несколько брокеров сообщений, включая
🔵 Расширяемость: Благодаря своей модульной архитектуре,
➡️ Установка библиотеки:
📱 Репозиторий
⚙️ Документация
➡️ Справочник Программиста. Подписаться
Библиотека
Dramatiq
- это асинхронная система очередей задач (task queue) для разработки и управления фоновыми задачами в приложениях.Она позволяет выполнять долгие и ресурсоемкие операции в фоновом режиме, освобождая основной поток выполнения для более важных задач.
Основные особенности библиотеки:
RabbitMQ
и Redis
, для обмена сообщениями между компонентами системы.Dramatiq
легко расширяется с помощью плагинов и middleware.pip install dramatiq
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥6❤🔥3
This media is not supported in your browser
VIEW IN TELEGRAM
Код для мониторинга скорости сетевого трафика в реальном времени на Python
Для мониторинга скорости сетевого трафика в коде используется модуль
Функция
➡️ Установка модуля:
➡️ Справочник Программиста. Подписаться
Для мониторинга скорости сетевого трафика в коде используется модуль
psutil
.Функция
net_io_counters()
из модуля psutil
предоставляет информацию о сетевом вводе/выводе (I/O) в системе.pip install
psutil
import psutil
import time
# Функция для мониторинга скорости сетевого трафика
def get_net_io():
# Получаем статистику сетевого ввода-вывода
io = psutil.net_io_counters()
# Возвращаем количество отправленных и полученных байт
return io.bytes_sent, io.bytes_recv
# Получаем начальные значения отправленных и полученных байт
prev_sent, prev_recv = get_net_io()
try:
# Бесконечный цикл для постоянного мониторинга
while True:
# Задержка на 1 секунду
time.sleep(1)
# Получаем текущие значения отправленных и полученных байт
sent, recv = get_net_io()
# Вычисляем и выводим скорость передачи и приема данных в KB/s
print(f"Скорость передачи: {(sent - prev_sent) / 1024:.2f} KB/s, Скорость приема: {(recv - prev_recv) / 1024:.2f} KB/s")
# Обновляем значения отправленных и полученных байт для следующего цикла
prev_sent, prev_recv = sent, recv
except KeyboardInterrupt:
# Обрабатываем прерывание программы (Ctrl+C)
print("Остановка мониторинга.")
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥10❤🔥3
This media is not supported in your browser
VIEW IN TELEGRAM
Библиотека
Altair
предназначена для визуализации данных на Python.Она основана на декларативном подходе, что делает создание графиков и диаграмм интуитивно понятным и удобным.
Основные особенности библиотеки:
DataFrame
из Pandas
, что позволяет быстро создавать графики на основе табличных данных.Matplotlib
или Seaborn
.pip install altair
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥7❤🔥3👍2
This media is not supported in your browser
VIEW IN TELEGRAM
Код для изменения размеров окна на Python
Для изменения размеров окна в коде используется библиотека
Функция
➡️ Установка модуля:
➡️ Справочник Программиста. Подписаться
Для изменения размеров окна в коде используется библиотека
PyGetWindow
.Функция
getWindowsWithTitle()
позволяет получить окно, а метод resizeTo()
- изменить его ширину и высоту.pip install PyGetWindow
import pygetwindow as gw
# Получаем окно, размеры которого нужно изменить
window = gw.getWindowsWithTitle('Название окна')[0]
# Изменяем размер окна на заданную ширину и высоту
window.resizeTo(800, 600)
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8❤🔥3🔥3
Библиотека
paramiko
предназначена для работы с SSH-2.Она позволяет создавать скрипты для автоматизации задач, которые требуют удаленного доступа к серверам, передачи файлов и выполнения команд.
Основные возможности библиотеки:
paramiko
для подключения к удаленному серверу, выполнения команды и получения результатаimport paramiko
# Создание SSH клиента
client = paramiko.SSHClient()
# Автоматическое добавление неизвестных ключей сервера
client.set_missing_host_key_policy(paramiko.AutoAddPolicy())
# Подключение к серверу
client.connect('hostname', username='user', password='passwd')
# Выполнение команды
stdin, stdout, stderr = client.exec_command('ls -l')
# Получение и вывод результата команды
print(stdout.read().decode())
# Закрытие соединения
client.close()
pip install paramiko
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥8❤🔥3
This media is not supported in your browser
VIEW IN TELEGRAM
Библиотека
ujson
предназначена для кодирования и декодирования JSON.Она значительно быстрее стандартной библиотеки
json
в Python, т.к. написана на языке C (в прикреплённом видео сравнивается их скорость).import ujson as json
# Кодирование JSON
data = {"name": "Anna", "age": 25, "city": "Novosibirsk"}
json_str = json.dumps(data)
print(json_str) # Вывод: {"name":"Anna","age":25,"city":"Novosibirsk"}
# Декодирование JSON
json_str = '{"name":"Anna","age":25,"city":"Novosibirsk"}'
data = json.loads(json_str)
print(data) # Вывод: {'name': 'Anna', 'age': 25, 'city': 'Novosibirsk'}
pip install ujson
Please open Telegram to view this post
VIEW IN TELEGRAM
❤🔥6👍4🔥4
Справочник Программиста
Вижу вам очень понравилась эта тема, поэтому держите последнюю порцию кода по ней
pip install mimesis
Генерация фейковых интернет-данных
from mimesis import Internet
internet = Internet()
print(f'Тип контента: {internet.content_type()}')
print(f'HTTP-метод: {internet.http_method()}')
print(f'IPv4 адрес: {internet.ip_v4()}')
print(f'IPv4 адрес с портом: {internet.ip_v4_with_port()}')
print(f'IPv6 адрес: {internet.ip_v6()}')
print(f'MAC адрес: {internet.mac_address()}')
print(f'Slug: {internet.slug()}')
print(f'Домен верхнего уровня: {internet.top_level_domain()}')
print(f'URL: {internet.url()}')
print(f'User-Agent: {internet.user_agent()}')
print(f'Строка запроса: {internet.query_string()}')
Генерация фейковых числовых данных
from mimesis import Numeric
numeric = Numeric()
print(f'Целое число: {numeric.integer_number()}')
print(f'Список целых чисел: {numeric.integers(start=1, end=100, n=5)}')
print(f'Число с плавающей точкой: {numeric.float_number()}')
print(f'Список чисел с плавающей точкой: {numeric.floats(start=0.1, end=10.0, n=5)}')
print(f'Комплексное число: {numeric.complex_number()}')
print(f'Список комплексных чисел: {numeric.complexes(start_real=0, end_real=1, start_imag=0, end_imag=1)}')
print(f'Число с плавающей точкой в диапазоне: {numeric.float_number(start=0.1, end=10.0)}')
print(f'Десятичное число: {numeric.decimal_number(start=0.1, end=10.0)}')
print(f'Список десятичных чисел: {numeric.decimals(start=0.1, end=10.0, n=5)}')
print(f'Матрица: {numeric.matrix(m=5, n=5)}')
Генерация фейковых транспортных данных
from mimesis import Transport
transport = Transport()
print(f'Номер автомобиля: {transport.car()}')
print(f'Марка автомобиля: {transport.manufacturer()}')
print(f'Регистрационный знак: {transport.vehicle_registration_code()}')
print(f'Модель самолёта: {transport.airplane()}')
Генерация фейковых путей и директорий
from mimesis import Path
path = Path()
print(f'Каталог: {path.root()}')
print(f'Домашний каталог: {path.home()}')
print(f'Каталог пользователя: {path.user()}')
print(f'Каталог пользователей: {path.users_folder()}')
print(f'Каталог разработки: {path.dev_dir()}')
print(f'Каталог проекта: {path.project_dir()}')
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7🔥5❤🔥2
Логирование в Python
В данной статье узнаем что такое логирование и как с ним работать в Python.
➡️ Справочник Программиста. Подписаться
В данной статье узнаем что такое логирование и как с ним работать в Python.
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥5❤🔥2👍2🤨1
В данном shorts напишем код для анонимизации данных на Python.
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥5❤🔥3😁1
Справочник Программиста
Библиотека scrubadub в Python
Библиотека
Основные возможности библиотеки:
🔵 Поиск личных данных: Поддержка различных детекторов, которые могут обнаруживать имена, адреса, номера телефонов, электронные почты и т.д.
🔵 Замена личных данных: После обнаружения личных данных
🔵 Расширяемость: Можно добавлять собственные детекторы или использовать существующие, чтобы обрабатывать специфические виды данных.
🔵 Поддержка разных языков: Может работать с текстами на разных языках.
✅ Пример кода
➡️ Установка библиотеки:
📱 Репозиторий
➡️ Справочник Программиста. Подписаться
Библиотека
scrubadub
предназначена для анонимизации текста, позволяет автоматически находить и удалять личные данные, такие как имена, адреса, номера телефонов и другие идентифицирующие сведения.Основные возможности библиотеки:
scrubadub
может заменять их на нейтральные плейсхолдеры, например, {{NAME}}, {{EMAIL}}.import scrubadub
# Пример текста с личными данными
text = "Вот моя почта - iavn@example.com и мой номер телефона - +7 (999) 999-99-99"
# Анонимизация текста
cleaned_text = scrubadub.clean(text)
print(cleaned_text)
pip install scrubadub
Please open Telegram to view this post
VIEW IN TELEGRAM
👍11❤🔥3🔥2
Справочник Программиста
This media is not supported in your browser
VIEW IN TELEGRAM
Код для генерации советов на Python
Нашёл ещё один интересный API, благодаря которому можно генерировать советы, если их так можно назвать🤔
Для обращения к API в коде используется библиотека
➡️ Установка библиотек:
➡️ Справочник Программиста. Подписаться
Нашёл ещё один интересный API, благодаря которому можно генерировать советы, если их так можно назвать
Для обращения к API в коде используется библиотека
requests
, а для перевода на русский - googletrans
.pip install
requests googletrans==3.1.0a0
import requests
from googletrans import Translator
def fetch_advice():
translator = Translator()
try:
response = requests.get("https://api.adviceslip.com/advice")
response.raise_for_status() # Проверка на успешный статус ответа
advice_data = response.json()
advice_text = advice_data["slip"]["advice"]
# Переводим текст совета на русский язык
translated_advice = translator.translate(advice_text, dest='ru')
# Выводим переведенный текст совета
print("\nСовет:", translated_advice.text)
except requests.exceptions.RequestException as e:
# Обработка исключений при выполнении запроса
print("\nОшибка: Не удалось получить совет. Пожалуйста, проверьте ваше интернет-соединение.")
print("Детали ошибки:", e)
except KeyError as e:
# Обработка исключений при доступе к данным JSON
print("\nОшибка: Неправильный формат ответа API.")
print("Детали ошибки:", e)
except Exception as e:
# Обработка других исключений
print("\nПроизошла непредвиденная ошибка.")
print("Детали ошибки:", e)
def main():
while True:
user_input = input("\nНажмите 'Enter' для получения совета или введите 'exit' для выхода: ").strip().lower()
if user_input == "exit":
print("Выход из программы. До свидания!")
break
fetch_advice()
if __name__ == "__main__":
main()
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥6👍4❤🔥2😁1
Полезные ссылки
За последние дни на канал подписалось много новых людей, поэтому я решил в одном посте выложить ссылки на все свои проекты, чтобы не было путаницы.
📱 YouTube-канал
📱 Сайт со статьями по Python
📱 Мой основной телеграм-канал (этот) - @programmersGuide_1
📱 Мой телеграм-канал с викторинами по Python (рано или поздно возрожу)) - @python_quizzes_tasks
📱 Приобрести мои курсы можно у бота (до конца июня скидки на всё 50%) - @courses_from_it_start_bot
📱 По написанию кода на заказ и сотрудничеству - @it_start_programmer
📱 Дзен
📱 TikTok
📱 Boosty (когда-нибудь возрожу)
💰 Поддержать меня
За последние дни на канал подписалось много новых людей, поэтому я решил в одном посте выложить ссылки на все свои проекты, чтобы не было путаницы.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5❤🔥4
Библиотека SDV в Python
Библиотека
Она была разработана для облегчения создания данных, которые сохраняют статистические свойства оригинальных данных, но не содержат реальных, возможно, конфиденциальных сведений.
Основные особенности библиотеки:
🔵 Синтетические данные: Позволяет генерировать синтетические наборы данных, которые имеют такие же статистические свойства, как и исходные данные.
🔵 Модели данных: Поддерживает несколько моделей для создания синтетических данных, включая GAN (Generative Adversarial Networks), Bayesian Networks и другие методы.
🔵 Обработка различных типов данных: Может работать с различными типами данных, такими как числовые, категориальные, временные ряды и т.д.
🔵 Конфиденциальность данных: Поскольку синтетические данные не содержат реальных данных, они могут использоваться в ситуациях, где важно сохранить конфиденциальность информации.
🔵 Генерация данных для сложных структур: Позволяет создавать синтетические данные для сложных структур, таких как базы данных с несколькими связанными таблицами.
✅ Пример кода. Т.к. пример на скриншоте слишком большой, продублирую его без комментариев в виде кода. Не переписывать же с картинки 🤔
➡️ Установка библиотеки:
📱 Репозиторий
⚙️ Документация
➡️ Справочник Программиста. Подписаться
Библиотека
SDV
(Synthetic Data Vault) предназначена для генерации синтетических данных.Она была разработана для облегчения создания данных, которые сохраняют статистические свойства оригинальных данных, но не содержат реальных, возможно, конфиденциальных сведений.
Основные особенности библиотеки:
from sdv.datasets.demo import download_demo
from sdv.evaluation.single_table import run_diagnostic
from sdv.single_table import GaussianCopulaSynthesizer
from sdv.evaluation.single_table import evaluate_quality
from sdv.evaluation.single_table import get_column_plot
real_data, metadata = download_demo(
modality='single_table',
dataset_name='fake_hotel_guests'
)
synthesizer = GaussianCopulaSynthesizer(metadata)
synthesizer.fit(real_data)
synthetic_data = synthesizer.sample(num_rows=500)
synthetic_data.head()
diagnostic = run_diagnostic(
real_data=real_data,
synthetic_data=synthetic_data,
metadata=metadata
)
quality_report = evaluate_quality(
real_data,
synthetic_data,
metadata
)
quality_report.get_details('Column Shapes')
fig = get_column_plot(
real_data=real_data,
synthetic_data=synthetic_data,
column_name='room_rate',
metadata=metadata
)
fig.show()
pip install sdv
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6❤🔥4🔥3😁2
Передача файлов с использованием SFTP на Python
Для передачи файлов с использованием SFTP в коде используется библиотека paramiko.
➡️ Установка модуля:
➡️ Справочник Программиста. Подписаться
Для передачи файлов с использованием SFTP в коде используется библиотека paramiko.
pip install paramiko
import paramiko
# Создание SSH клиента
client = paramiko.SSHClient()
client.set_missing_host_key_policy(paramiko.AutoAddPolicy())
# Подключение к серверу
client.connect('hostname', username='user', password='passwd')
# Создание SFTP сессии
sftp = client.open_sftp()
# Загрузка файла на сервер
sftp.put('local_file.txt', 'remote_file.txt')
# Скачивание файла с сервера
sftp.get('remote_file.txt', 'local_file.txt')
# Закрытие SFTP сессии и SSH соединения
sftp.close()
client.close()
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥9👍4❤🔥2
🗄Библиотека ArchiveBox в Python
Библиотека
Она предназначена для автоматического захвата, архивирования и индексации онлайн-контента, чтобы пользователи могли создавать долговечные копии веб-страниц для будущего использования.
Основные возможности библиотеки:
🔵 Захват веб-страниц: Может захватывать и сохранять веб-страницы различными способами, включая HTML, PDF, снимки экрана, WARC (Web ARChive), и другие форматы.
🔵 Поддержка нескольких источников: Поддерживает импорт ссылок из множества источников, таких как браузерные закладки, файлы HTML, RSS-ленты, и API.
🔵 Интеграция с другими инструментами: Может работать вместе с другими инструментами архивирования, такими как
🔵 Поиск и индексация: Сохранённые веб-страницы индексируются, что позволяет выполнять поиск по содержимому архивированных сайтов.
🔵 Автоматизация: Можно настроить автоматическое обновление архива с регулярными интервалами, чтобы сохранять актуальные версии страниц.
➡️ Установка библиотеки:
📱 Репозиторий
⚙️ Документация
➡️ Справочник Программиста. Подписаться
Библиотека
ArchiveBox
позволяет архивировать и сохранять веб-страницы.Она предназначена для автоматического захвата, архивирования и индексации онлайн-контента, чтобы пользователи могли создавать долговечные копии веб-страниц для будущего использования.
Основные возможности библиотеки:
wget
, curl
, youtube-dl
и другими, чтобы захватывать контент с различных типов сайтов, включая видео и динамический контент.pip install archivebox
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥8👍3❤🔥2
Дизассемблирование в Python
В данной статье поговорим про дизассемблирование байт-кода в Python.
➡️ Справочник Программиста. Подписаться
В данной статье поговорим про дизассемблирование байт-кода в Python.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤🔥6👍2
This media is not supported in your browser
VIEW IN TELEGRAM
Код для извлечения кадров из GIF на Python
Для извлечения кадров из GIF в коде используется библиотека
Атрибут
➡️ Установка библиотеки:
➡️ Справочник Программиста. Подписаться
Для извлечения кадров из GIF в коде используется библиотека
Pillow
.Атрибут
n_frames
из библиотеки Pillow
представляет собой количество кадров в анимированном изображении.pip install Pillow
from PIL import Image
# Открытие GIF
gif = Image.open('input.gif')
# Извлечение и сохранение кадров
for frame in range(0, gif.n_frames):
gif.seek(frame)
gif.save(f'frame_{frame}.png')
Please open Telegram to view this post
VIEW IN TELEGRAM
❤🔥5👍4🔥2
Библиотека IconMatch в Python
Библиотека
Она помогает программам и разработчикам находить наиболее похожие изображения или иконки из заданного набора, основываясь на визуальных характеристиках.
Основные возможности библиотеки:
🔵 Позволяет анализировать изображения, извлекая ключевые характеристики, что помогает в сравнении и поиске схожих изображений.
🔵 Использует различные алгоритмы и методики, такие как гистограммы, дескрипторы или сравнение контуров, чтобы оценить степень сходства между изображениями.
🔵 Для повышения точности распознавания и классификации библиотека включает инструменты для предобработки изображений, такие как изменение размера, нормализация и фильтрация.
🔵 Оснащена удобным интерфейсом, что облегчает ее интеграцию в проекты и приложений, требующие функционала распознавания и
➡️ Установка библиотеки:
📱 Репозиторий
➡️ Справочник Программиста. Подписаться
Библиотека
IconMatch
предназначена для классификации и распознавания изображений и иконок.Она помогает программам и разработчикам находить наиболее похожие изображения или иконки из заданного набора, основываясь на визуальных характеристиках.
Основные возможности библиотеки:
pip install IconMatch
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥4❤🔥2
This media is not supported in your browser
VIEW IN TELEGRAM
Для обращения к API в коде используется библиотека
requests
.pip install
requests
import requests
def get_weather(city: str) -> None:
api_key = '79d1ca96933b0328e1c7e3e7a26cb347'
base_url = 'https://api.openweathermap.org/data/2.5/weather'
params = {
'q': city, # Название города
'units': 'metric', # Единицы измерения - метрические
'lang': 'ru', # Язык ответа
'appid': api_key # Ключ API
}
try:
# Выполняем GET-запрос с параметрами
response = requests.get(base_url, params=params)
# Проверяем успешность выполнения запроса
response.raise_for_status()
# Преобразуем ответ в формат JSON
weather_data = response.json()
# Получаем текущую температуру
temperature = weather_data['main']['temp']
# Получаем ощущаемую температуру
temperature_feels = weather_data['main']['feels_like']
# Получаем скорость ветра
wind_speed = weather_data['wind']['speed']
# Получаем описание облачности
cloud_cover = weather_data['weather'][0]['description']
# Получаем влажность
humidity = weather_data['main']['humidity']
# Выводим собранные данные о погоде
print(f'Температура воздуха: {temperature}°C\n'
f'Ощущается как: {temperature_feels}°C\n'
f'Ветер: {wind_speed} м/с\n'
f'Облачность: {cloud_cover}\n'
f'Влажность: {humidity}%')
# Обрабатываем исключения, связанные с запросом
except requests.RequestException as e:
print(f'Ошибка при запросе погоды: {e}')
# Обрабатываем случаи отсутствия данных в ответе
except KeyError:
print(f'Не удалось определить город: {city}')
if __name__ == "__main__":
city = input('Введите город, в котором хотите узнать погоду: ')
get_weather(city)
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥14👍7❤🔥2