msgspec🟠 Очень быстрая сериализация/десериализация JSON или MessagePack🟠 Встроенный механизм msgspec.Struct — легкая альтернатива Pydantic для валидации🟠 Отличается компактным двоичным представлением (MessagePack)🟠 Подходит для межпроцессного обмена, сетевого взаимодействия, микросервисов с минимальными накладными расходами
⚙️ Установка:
pip install msgspec
#библиотеки
Please open Telegram to view this post
VIEW IN TELEGRAM
❤7👍3🔥3
albumentations🟠 Поддержка различных типов данных: изображения, маски, bounding boxes, ключевые точки.🟠 Высокая производительность благодаря использованию OpenCV.🟠 Простота интеграции с другими библиотеками, такими как PyTorch и TensorFlow.🟠 Широкий набор трансформаций с возможностью комбинирования их в пайплайны.
⚙️ Установка:
pip install albumentations
#библиотеки
Please open Telegram to view this post
VIEW IN TELEGRAM
❤7🔥5👍4
os, shutilimport os
import shutil
def organize_folder(path):
extensions = {
"Images": [".jpg", ".jpeg", ".png", ".gif"],
"Documents": [".pdf", ".docx", ".txt"],
"Music": [".mp3", ".wav", ".flac"],
"Videos": [".mp4", ".avi", ".mkv"],
}
for filename in os.listdir(path):
filepath = os.path.join(path, filename)
if os.path.isfile(filepath):
for folder, exts in extensions.items():
if any(filename.lower().endswith(ext) for ext in exts):
target_folder = os.path.join(path, folder)
os.makedirs(target_folder, exist_ok=True)
shutil.move(filepath, os.path.join(target_folder, filename))
print(f"Переместил {filename} -> {folder}")
break
if __name__ == "__main__":
organize_folder("C:/Users/user/Downloads")
📌 Что делает:
🟠 Сканирует папку🟠 Определяет расширение файла🟠 Перемещает файл в подпапку по типу (создаёт папку, если нужно)
#скрипты
Please open Telegram to view this post
VIEW IN TELEGRAM
1❤10👍5🔥5
socket, time, argparse # Запуск сервера:
python udp_latency.py --serve --ip 0.0.0.0 --port 9999
# Запуск клиента (one-way latency):
python udp_latency.py --client --ip 192.168.1.10 --port 9999 \
--freq 10 --size 1024 --time 30 --rtt False
🟠 --serve запускает UDP‑сервер, ловящий пакеты и (для RTT) присылающий ответ🟠 client подключается к серверу и отправляет UDP‑пакеты указанной частоты (--freq) и размера (--size)🟠 Собирает и выводит статистику по задержке🟠 Односторонняя и круговая задержка легко переключаются флагом --rtt
#скрипты
Please open Telegram to view this post
VIEW IN TELEGRAM
❤10🔥6👍3
dask🟠 Масштабирование: от одного ядра до всего кластера.🟠 Совместимый синтаксис: DataFrame, Array, ML API аналогичны знакомым библиотекам.🟠 Отличается удобством и гибкостью: можно начать с локальных расчётов, а затем перенести тот же код в прод.🟠 Используется крупными компаниями: Walmart, Nvidia, NASA, Capital One и другими.
🟠 Открытый исходник, активное развитие, последний релиз был в феврале 2024.
pip install dask[complete]
(пакет с зависимостями для полного функционала — параллельные файловые системы, SQL, ML и др.)
#библиотеки
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6❤5🔥4
os, PIL (Pillow), argparse🟠 Принимает папку с изображениями🟠 Изменяет размер каждого изображения до заданной ширины, сохраняя пропорции🟠 Сохраняет изменённые изображения в новую папку
import os
from PIL import Image
import argparse
def resize_images(input_folder, output_folder, width):
os.makedirs(output_folder, exist_ok=True)
for filename in os.listdir(input_folder):
if filename.lower().endswith(('.png', '.jpg', '.jpeg')):
img_path = os.path.join(input_folder, filename)
img = Image.open(img_path)
aspect_ratio = img.height / img.width
height = int(width * aspect_ratio)
resized_img = img.resize((width, height))
resized_img.save(os.path.join(output_folder, filename))
print(f"✅ {filename} resized")
else:
print(f"❌ {filename} is not an image")
if __name__ == '__main__':
parser = argparse.ArgumentParser()
parser.add_argument('input_folder', help='Папка с изображениями')
parser.add_argument('output_folder', help='Папка для сохранения изменённых изображений')
parser.add_argument('width', type=int, help='Ширина изменённых изображений')
args = parser.parse_args()
resize_images(args.input_folder, args.output_folder, args.width)
pip install pillow
🟠 Скрипт сохраняет изменённые изображения в указанную папку🟠 Использует библиотеку Pillow для обработки изображений🟠 Подходит для массовой обработки изображений
#скрипты
Please open Telegram to view this post
VIEW IN TELEGRAM
👍12❤9🔥5😁1
rustworkx🟠 Быстрые операции с графами (добавление вершин/рёбер, поиск кратчайшего пути, центральности и др.)🟠 API-поддержка NetworkX, что упрощает миграцию🟠 Поддерживает взвешенные, ориентированные и неориентированные графы🟠 Подходит для задач на больших данных: социальные сети, road-сети, алгоритмы графовой оптимизации🟠 Написана на Rust с безопасностью памяти и отличной производительностью при массовом использовании
pip install rustworkx
🟠 rustworkx.PyDiGraph() — лёгкий и быстрый граф🟠 Dijkstra используется из ядра Rust — работает в разы быстрее, чем NetworkX
#библиотеки
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6❤4🔥4
polars🟠 Быстрее pandas: анализ показывает, что Polars расходует до 8× меньше ОЗУ и в 5–10× быстрее на типичных задачах .🟠 Ленивые вычисления и оптимизатор запросов, минимизирующий ненужные вычисления .🟠 Поддерживает DataFrame, LazyFrame, выражения, SQL‑подобный синтаксис.🟠 Встроенная многопоточность и низкий расход памяти за счёт Rust-ядра.🟠 Идеальна для ETL, анализа больших наборов данных, обработки CSV/Parquet/JSON, построения пайплайнов NLP/ML.
pip install polars
#библиотеки
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥5❤3👍2🎉1
openai, argparse, os🟠 Принимает путь к .txt файлу🟠 Использует OpenAI Python SDK для вызова модели GPT-3.5/4🟠 Возвращает краткое резюме на основе prompt-инструкции🟠 Подходит для автоматизации обзора документов, email-рассылок, отчетов
python summarize.py --input article.txt --model gpt-3.5-turbo
import os
import openai
import argparse
def summarize_file(input_path, model="gpt-3.5-turbo"):
with open(input_path, 'r', encoding='utf-8') as f:
text = f.read()
openai.api_key = os.getenv("OPENAI_API_KEY")
resp = openai.ChatCompletion.create(
model=model,
messages=[
{"role": "system", "content": "You are a helpful assistant."},
{"role": "user", "content": f"Summarize this text:\n\n{text}"}
]
)
return resp.choices[0].message.content.strip()
if __name__ == "__main__":
p = argparse.ArgumentParser()
p.add_argument("--input", required=True, help="Путь к текстовому файлу")
p.add_argument("--model", default="gpt-3.5-turbo", help="Модель OpenAI")
args = p.parse_args()
summary = summarize_file(args.input, args.model)
print("📄 Summary:\n", summary)
pip install openai
🟠 Требуется переменная окружения OPENAI_API_KEY🟠 Позволяет быстро получать краткое резюме больших текстов🟠 Можно интегрировать в email-ботов, аналитические пайплайны или фоновую обработку документов
#скрипты
Please open Telegram to view this post
VIEW IN TELEGRAM
❤8🔥4👍3😁2
psutil, time, argparse (стандартная библиотека)python sys_monitor.py --interval 2 # обновление каждые 2 секунды
import psutil
import time
import argparse
def human_bytes(n):
for unit in ['B','KB','MB','GB','TB']:
if n < 1024:
return f"{n:.1f}{unit}"
n /= 1024
return f"{n:.1f}PB"
def monitor(interval):
try:
while True:
cpu = psutil.cpu_percent(interval=None)
mem = psutil.virtual_memory()
disk = psutil.disk_usage('/')
net = psutil.net_io_counters()
print(f"CPU: {cpu}% | MEM: {mem.percent}% ({human_bytes(mem.used)}/{human_bytes(mem.total)}) | "
f"Disk: {disk.percent}% | Net: up {human_bytes(net.bytes_sent)} / down {human_bytes(net.bytes_recv)}")
time.sleep(interval)
except KeyboardInterrupt:
print("\n🛑 Monitor stopped.")
if __name__ == "__main__":
p = argparse.ArgumentParser()
p.add_argument('--interval', type=float, default=1.0, help='Interval in seconds')
args = p.parse_args()
monitor(args.interval)
🟠 Считывает нагрузку CPU (cpu_percent)🟠 Получает состояние памяти (virtual_memory)🟠 Собирает usage дисков (disk_usage)🟠 Анализирует сетевой трафик (net_io_counters)🟠 Выводит данные обновляемым прямо в терминале🟠 Легко расширяется и включает перехват Ctrl+C
⚙️ Установка зависимостей:
pip install psutil
🟠 Быстрый мониторинг серверов и локальной машины🟠 Слежение за утечками памяти или перегрузкой CPU🟠 Инструмент для DevOps, отладки и профилирования кода
#скрипты
Please open Telegram to view this post
VIEW IN TELEGRAM
❤9👍4🔥3
shed-skin🟠 Преобразует ограниченный Python (аннотации типов, без dynamic features) в нативный C++🟠 Ускорение исполнения — особый интерес для вычислительных задач, где важна скорость🟠 Поддержка около 20 стандартных модулей (random, itertools, re и др.)🟠 Кроссплатформенность: Linux, macOS, Windows🟠 Разрешённая лицензия — GPLv3/BSD/MIT, активная разработка: последний релиз был 22 июня 2024
pip install shed-skin
#библиотеки
Please open Telegram to view this post
VIEW IN TELEGRAM
❤7🔥5👍4
🟠 Перевод технических документов, статей, инструкций🟠 Работа в оффлайн-средах (военные, научные проекты, закрытые офисы)🟠 Перевод без утечки данных (без отправки в интернет)🟠 Автоперевод архивов
import argostranslate.package, argostranslate.translate
import pdfplumber
import docx2txt
import os
def load_model(from_code="ru", to_code="en"):
installed_languages = argostranslate.translate.get_installed_languages()
from_lang = next(filter(lambda l: l.code == from_code, installed_languages), None)
to_lang = next(filter(lambda l: l.code == to_code, installed_languages), None)
return from_lang.get_translation(to_lang) if from_lang and to_lang else None
def extract_text(file_path):
if file_path.endswith(".pdf"):
with pdfplumber.open(file_path) as pdf:
return "\n".join(page.extract_text() or "" for page in pdf.pages)
elif file_path.endswith(".docx"):
return docx2txt.process(file_path)
elif file_path.endswith(".txt"):
with open(file_path, "r", encoding="utf-8") as f:
return f.read()
else:
raise ValueError("Неподдерживаемый формат")
def save_text(text, out_path):
with open(out_path, "w", encoding="utf-8") as f:
f.write(text)
# Пример использования
file_path = "example_ru.pdf"
out_path = "translated_en.txt"
translation = load_model("ru", "en")
text = extract_text(file_path)
translated = translation.translate(text)
save_text(translated, out_path)
print(f"✅ Перевод сохранён: {out_path}")
#скрипты
Please open Telegram to view this post
VIEW IN TELEGRAM
👍15❤8
rpyc🟠 Симметричность: клиент и сервер могут выступать обе роли, вызывать функции и обмениваться объектами.🟠 Прозрачность: удалённые функции, классы и объекты выглядят как локальные.🟠 Поддержка синхронных и асинхронных вызовов (AsyncResult как промисы).🟠 Исключения передаются по сети как в локальном коде — удобно для отладки.🟠 Удобна для распределённых Python-приложений, отладочных оболочек, удалённого управления, микросервисов, интерактивных shell-сессий.
pip install rpyc
#библиотеки
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7🔥4❤2🥰1
socket, sys, argparse, datetime (все стандартные)- Спрашивает адрес хоста (IP или домен) и диапазон портов
- Использует socket.connect_ex() для проверки каждого порта
- Печатает список открытых портов и время выполнения
- Основан на примерах с TechTarget и GeeksforGeeks
python port_scanner.py --host example.com --start 1 --end 1024
import socket
import sys
import argparse
from datetime import datetime
def scan_ports(host, start, end, timeout=0.5):
try:
target = socket.gethostbyname(host)
except socket.gaierror:
print("❌ Не удалось разрешить хост.")
sys.exit(1)
print(f"=== Сканирование {host} ({target}) портов {start}–{end} ===")
t0 = datetime.now()
open_ports = []
for port in range(start, end + 1):
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
sock.settimeout(timeout)
result = sock.connect_ex((target, port))
if result == 0:
print(f"✔️ Порт {port} открыт")
open_ports.append(port)
sock.close()
t1 = datetime.now()
print(f"=== Сканирование завершено за {t1 - t0} (открыто: {len(open_ports)}) ===")
if open_ports:
print("Открытые порты:", open_ports)
def main():
parser = argparse.ArgumentParser(description="Простой TCP порт-сканнер")
parser.add_argument("--host", required=True, help="IP или хостнейм для сканирования")
parser.add_argument("--start", type=int, default=1, help="Начальный порт")
parser.add_argument("--end", type=int, default=1024, help="Конечный порт")
args = parser.parse_args()
scan_ports(args.host, args.start, args.end)
if __name__ == "__main__":
main()
- Разрешает домен в IP
- Проверяет диапазон портов методом connect_ex()
- Использует параметр timeout, чтобы не зависать
- Показывает открытые порты и время сканирования
#скрипты
Please open Telegram to view this post
VIEW IN TELEGRAM
❤7👍4
cupy🟠 Поддерживает многомерные массивы, линейную алгебру, FFT и статистику, как в NumPy;🟠 GPU‑ускорение: подходит для ускорения ML‑подготовки и вычислений;🟠 Совместимость: безболезненная замена import numpy as np → import cupy as cp;🟠 Поддержка CUDA и AMD ROCm, активно развивается (версия 13.3.0, август 2024);🟠 Используется в проектах NVIDIA RAPIDS, Chainer и др..
pip install cupy
- Используется привычный API NumPy, но ускоряется за счёт GPU;
- Отличный выбор для подготовки данных, вычислений и ML‑задач;
- Значительное ускорение для операций над большими массивами.
#библиотеки
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5🔥4❤3
sweetviz🟠 Генерация полного EDA-отчёта одним вызовом (analyze()), включая сводную статистику по всем колонкам;🟠 Поддержка сравнения двух таблиц — полезно для выявления смещений между train/test;🟠 Автоматические красивые графики — распределения, зависимости, статистические сравнения;🟠 Всё хранится в самостоятельном .html — удобно делиться отчётами коллегам.
pip install sweetviz
#библиотеки
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8❤3🔥3
icecreamprint(). Он автоматически выводит имя переменной, её значение и контекст (файл:строка) — всё это улучшает читаемость и ускоряет поиск багов. В 2025 году становится незаменимым в повседневной отладке.🟠 Автоматическое именование переменных и вывод контекста (ic(x, y, z) → ic| x: 1, y: 2, z:3)🟠 Цветной и форматированный вывод🟠 Поддержка фильтрации, включения/отключения🟠 Работает быстрее и удобнее, чем ручной print()🟠 Лёгкая установка, BSD‑лицензия, совместимость с Python 3.7+
pip install icecream
#библиотеки
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥12👍3❤1🥰1
watchdog, argparse, time (стандартная библиотека)- Мониторит создание, изменение, удаление и перемещение файлов
- Позволяет указать директорию и включить вложенные папки (--recursive)
- Поддерживает фильтрацию по расширению файлов (например, только .py)
- Основан на библиотеке watchdog, которая использует platform-specific механизмы (inotify, Windows API)
python dir_watcher.py --path ./my_folder --recursive --ext .txt,.log
import time, argparse
from watchdog.observers import Observer
from watchdog.events import FileSystemEventHandler
class Handler(FileSystemEventHandler):
def __init__(self, exts):
self.exts = tuple(exts)
def dispatch(self, event):
if event.is_directory: return
if self.exts and not event.src_path.endswith(self.exts): return
super().dispatch(event)
def on_created(self, event):
print(f"🟢 Created: {event.src_path}")
def on_modified(self, event):
print(f"🟡 Modified: {event.src_path}")
def on_deleted(self, event):
print(f"🔴 Deleted: {event.src_path}")
def on_moved(self, event):
print(f"🔁 Moved: {event.src_path} → {event.dest_path}")
def main():
parser = argparse.ArgumentParser(description="Directory Watcher")
parser.add_argument("--path", required=True, help="Папка для мониторинга")
parser.add_argument("--recursive", action="store_true", help="Сканировать вложенные папки")
parser.add_argument("--ext", default="", help="Фильтр по расширениям (через запятую)")
args = parser.parse_args()
exts = [e.strip() for e in args.ext.split(",") if e.strip()]
handler = Handler(exts)
observer = Observer()
observer.schedule(handler, args.path, recursive=args.recursive)
observer.start()
print(f"🚀 Monitoring '{args.path}' (recursive={args.recursive}, exts={exts})")
try:
while True:
time.sleep(1)
except KeyboardInterrupt:
observer.stop()
observer.join()
if __name__ == "__main__":
main()
pip install watchdog
- Автоматический запуск сборки/тестов при изменении файлов
- Синхронизация или обработка новых логов/данных
- Автоматизация задач DevOps, CI/CD, генерации статических сайтов и т.п.
#скрипты
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7❤4🔥2
requests, bs4 (BeautifulSoup), osimport os
import requests
from bs4 import BeautifulSoup
def download_google_images(query, folder="images", limit=10):
os.makedirs(folder, exist_ok=True)
url = "https://www.google.com/search"
params = {"q": query, "tbm": "isch"}
headers = {"User-Agent": "Mozilla/5.0"}
resp = requests.get(url, params=params, headers=headers)
soup = BeautifulSoup(resp.text, "html.parser")
imgs = soup.find_all("img")[:limit]
for i, img in enumerate(imgs, 1):
src = img.get("src")
if not src:
continue
img_data = requests.get(src).content
path = os.path.join(folder, f"{query.replace(' ', '_')}_{i}.jpg")
with open(path, "wb") as f:
f.write(img_data)
print(f"✅ Скачал: {path}")
if __name__ == "__main__":
download_google_images("cats", limit=5)
🟠 Делает GET-запрос к Google Images с указанным ключевым словом🟠 Парсит HTML через BeautifulSoup, берёт src первых <img>🟠 Скачивает картинки по ссылке и сохраняет их в папку images
#скрипты
Please open Telegram to view this post
VIEW IN TELEGRAM
👍9❤3🔥3
pefile 🟠 Извлекает структуру PE-файла: секции, импорты, экспорты, заголовки🟠 Удобна для анализов вредоносного ПО и реверса🟠 Поддерживает изменение и пересборку PE-файлов
pip install pefile
#библиотеки
Please open Telegram to view this post
VIEW IN TELEGRAM
👍10❤5🔥3