Справочник Программиста
6.36K subscribers
1.29K photos
376 videos
64 files
1.62K 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
Библиотека Dramatiq в Python

Библиотека Dramatiq - это асинхронная система очередей задач (task queue) для разработки и управления фоновыми задачами в приложениях.

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

Основные особенности библиотеки:
🔵Асинхронность: Поддерживает асинхронное выполнение задач, что позволяет обрабатывать множество задач параллельно.
🔵Простота использования: Имеет интуитивно понятный API, что делает ее доступной для разработчиков любого уровня.
🔵Поддержка брокеров сообщений: Поддерживает несколько брокеров сообщений, включая 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

Библиотека Altair предназначена для визуализации данных на Python.

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

Основные особенности библиотеки:
🔵Декларативный стиль: Использует декларативный стиль, что означает, что вы описываете, что вы хотите видеть, а не как это нарисовать.
🔵Интеграция с Pandas: Легко работает с DataFrame из Pandas, что позволяет быстро создавать графики на основе табличных данных.
🔵Поддержка интерактивных визуализаций: Позволяет создавать интерактивные графики, которые можно масштабировать, фильтровать и выделять.
🔵Основана на Vega и Vega-Lite: Строится на базе спецификаций визуализации данных Vega и Vega-Lite, что делает её гибкой и расширяемой.
🔵Минимум кода: Для создания сложных визуализаций требуется меньше кода по сравнению с другими библиотеками, такими как 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 в Python

Библиотека paramiko предназначена для работы с SSH-2.

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

Основные возможности библиотеки:
🔵Управление SSH-соединениями: Позволяет устанавливать защищенные соединения с удаленными серверами по SSH. Это включает аутентификацию с использованием пароля или ключей.
🔵Выполнение удаленных команд: Позволяет выполнять команды на удаленных серверах и получать их вывод, что полезно для автоматизации административных задач.
🔵Передача файлов: Поддерживает протокол SFTP, что позволяет загружать и скачивать файлы с удаленных серверов.
🔵Туннелирование SSH: Поддерживает создание SSH-туннелей, что может быть полезно для безопасной передачи данных через незащищенные сети.

Пример использования 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
👩‍💻 Библиотека UltraJSON в Python

Библиотека ujson предназначена для кодирования и декодирования JSON.

Она значительно быстрее стандартной библиотеки json в Python, т.к. написана на языке C (в прикреплённом видео сравнивается их скорость).

Пример кода с использованием UltraJSON
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
Справочник Программиста
💻 Коды для генерации фейковых данных на Python часть 2 ➡️Установка необходимой библиотеки: pip install mimesis Генерация случайных платёжных данных from mimesis import Payment payment = Payment() print("Номер кредитной карты:", payment.credit_card_number())…
💻 Коды для генерации фейковых данных на Python часть 3

Вижу вам очень понравилась эта тема, поэтому держите последнюю порцию кода по ней 👀

➡️Установка необходимой библиотеки: 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.

➡️Справочник Программиста. Подписаться
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥5❤‍🔥2👍2🤨1
📺 Анонимизация личных данных в Python

В данном shorts напишем код для анонимизации данных на Python.

➡️Справочник Программиста. Подписаться
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥5❤‍🔥3😁1
Справочник Программиста
📺 Анонимизация личных данных в Python В данном shorts напишем код для анонимизации данных на Python. ➡️Справочник Программиста. Подписаться
Библиотека 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
Справочник Программиста
🍽Код для генерации идей ужина на Python Нашёл данный код на просторах интернета, почти весь пришлось переписать и добавить перевод (хотя мне кажется лучше его убрать и читать по-английски))) Для обращения к API в коде используется библиотека requests, а…
This media is not supported in your browser
VIEW IN TELEGRAM
Код для генерации советов на Python

Нашёл ещё один интересный 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

Библиотека SDV (Synthetic Data Vault) предназначена для генерации синтетических данных.

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

Основные особенности библиотеки:
🔵Синтетические данные: Позволяет генерировать синтетические наборы данных, которые имеют такие же статистические свойства, как и исходные данные.
🔵Модели данных: Поддерживает несколько моделей для создания синтетических данных, включая GAN (Generative Adversarial Networks), Bayesian Networks и другие методы.
🔵Обработка различных типов данных: Может работать с различными типами данных, такими как числовые, категориальные, временные ряды и т.д.
🔵Конфиденциальность данных: Поскольку синтетические данные не содержат реальных данных, они могут использоваться в ситуациях, где важно сохранить конфиденциальность информации.
🔵Генерация данных для сложных структур: Позволяет создавать синтетические данные для сложных структур, таких как базы данных с несколькими связанными таблицами.

Пример кода. Т.к. пример на скриншоте слишком большой, продублирую его без комментариев в виде кода. Не переписывать же с картинки 🤔
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.

➡️Установка модуля: 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

Библиотека ArchiveBox позволяет архивировать и сохранять веб-страницы.

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

Основные возможности библиотеки:
🔵Захват веб-страниц: Может захватывать и сохранять веб-страницы различными способами, включая HTML, PDF, снимки экрана, WARC (Web ARChive), и другие форматы.
🔵Поддержка нескольких источников: Поддерживает импорт ссылок из множества источников, таких как браузерные закладки, файлы HTML, RSS-ленты, и API.
🔵Интеграция с другими инструментами: Может работать вместе с другими инструментами архивирования, такими как wget, curl, youtube-dl и другими, чтобы захватывать контент с различных типов сайтов, включая видео и динамический контент.
🔵Поиск и индексация: Сохранённые веб-страницы индексируются, что позволяет выполнять поиск по содержимому архивированных сайтов.
🔵Автоматизация: Можно настроить автоматическое обновление архива с регулярными интервалами, чтобы сохранять актуальные версии страниц.

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

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

➡️Справочник Программиста. Подписаться
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥8👍3❤‍🔥2
Дизассемблирование в 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 в коде используется библиотека 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
⛅️ Код для получения прогноза погоды на Python

Для обращения к 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