Python_Scripts
8.22K subscribers
1K photos
5 videos
674 files
1.54K links
Скрипты 💾 на Python 🐍
- боты 🛠
- парсеры📁
- чекеры🔍
- автоматизация🔧
- многое другое💻

Ваши предложения📝 @cmd_dark @CMD_Vega
Download Telegram
Website Uptime Monitor — лёгкий CLI-скрипт для мониторинга доступности одного или нескольких сайтов. Проверяет HTTP-коды, измеряет задержку и отправляет уведомление (например, в Telegram) при падении серверов.

📱 Python 3.8+
💾 Модули: requests, time, argparse, datetime, os

📌 Website Uptime Monitor:
Делает запросы на указанные URL через заданный интервал
Логирует скорость ответа и HTTP-статусы
При неоднократных ошибках отправляет уведомление (например, в Telegram)
Подходит для круглосуточного мониторинга API, сайтов и веб-сервисов


🧑‍💻 Пример использования (CLI):
python uptime_monitor.py --urls https://example.com,https://api.example.com \
--interval 60 --retries 3 --notify-telegram


👨‍💻 Код скрипта:
import requests, time, argparse, datetime, os

def alert_telegram(bot_token, chat_id, msg):
url = f"https://api.telegram.org/bot{bot_token}/sendMessage"
requests.post(url, data={"chat_id": chat_id, "text": msg})

def monitor(urls, interval, retries, bot_token=None, chat_id=None):
status = {u: True for u in urls}
while True:
for u in urls:
try:
r = requests.get(u, timeout=10)
ok = r.status_code == 200
resp = f"{r.status_code}, {r.elapsed.total_seconds():.2f}s"
except Exception as e:
ok = False
resp = f"Error: {e}"
now = datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S")
print(f"[{now}] {u} → {resp}")
if not ok and status[u]:
status[u] = False
msg = f"⚠️ {u} is DOWN at {now}"
if bot_token and chat_id:
alert_telegram(bot_token, chat_id, msg)
if ok and not status[u]:
status[u] = True
msg = f" {u} is UP again at {now}"
if bot_token and chat_id:
alert_telegram(bot_token, chat_id, msg)
time.sleep(interval)

if __name__ == "__main__":
p = argparse.ArgumentParser()
p.add_argument("--urls", required=True, help="Comma-separated URLs")
p.add_argument("--interval", type=int, default=60)
p.add_argument("--retries", type=int, default=3)
p.add_argument("--bot-token", default=os.getenv("TELEGRAM_TOKEN"))
p.add_argument("--chat-id", default=os.getenv("TELEGRAM_CHAT_ID"))
args = p.parse_args()
urls = [u.strip() for u in args.urls.split(',')]
monitor(urls, args.interval, args.retries, args.bot_token, args.chat_id)


⚙️ Установка зависимости:
pip install requests


#скрипты

🖥 Python_Scripts
Please open Telegram to view this post
VIEW IN TELEGRAM
11👍4🔥3
🖥 Пример скрипта для резервного копирования базы данных

💬 В этом примере покажу, как с помощью Python автоматизировать процесс резервного копирования базы данных MySQL в ваших DevOps-проектах.

📌 Для создания резервных копий мы будем использовать системную утилиту mysqldump, которую вызовем из Python через модуль subprocess. Такой подход надёжен и широко используется на практике.

import os
import time
import subprocess

def backup_database(host, username, password, database, output_dir):
timestamp = time.strftime('%Y%m%d_%H%M%S')
output_file = os.path.join(output_dir, f'{database}_backup_{timestamp}.sql')

cmd = [
'mysqldump',
f'-h{host}',
f'-u{username}',
f'-p{password}',
database
]

try:
with open(output_file, 'w') as f:
subprocess.run(cmd, stdout=f, check=True)
print(f'Database backup saved to {output_file}')
except subprocess.CalledProcessError as e:
print(f'Error during backup: {e}')

if __name__ == '__main__':
db_host = 'localhost'
db_username = 'your_db_username'
db_password = 'your_db_password'
db_name = 'your_database_name'
backup_output_dir = '/path/to/backup_directory'

backup_database(db_host, db_username, db_password, db_name, backup_output_dir)


☝️ В итоге скрипт создаст файл с дампом базы в указанной папке, добавив к имени текущую дату и время.

🖥 Python_Scripts
Please open Telegram to view this post
VIEW IN TELEGRAM
👍74😁2
Server-Monitoring-Telegram-Bot-System-main.zip
12.6 MB
📍 Скрипт удаленного мониторинга и управления вашим сервером Linux.

💻  ЯП:  Python 3.11+🐍
💾  Модули: flask, python-telegram-bot, requests, psutil
📂  База данных: -

🚀 Скрипт полностью контейнерное приложение, которое предоставляет веб-интерфейс и бота Telegram для мониторинга и управления вашим сервером Linux. Оно предоставляет уведомления в реальном времени о доступе SSH/SFTP, использовании системных ресурсов, подключении к Интернету и управлении контейнерами Docker, загрузке и выгрузке файлов с бота на сервер и наоборот. Решение позволяет осуществлять как удаленный мониторинг, так и управление непосредственно из браузера или Telegram.

📍 Вся информация приведена исключительно в ознакомительных целях❗️❗️❗️

#telegram

📍 Подпишись 📱 Python_Scripts❗️
Please open Telegram to view this post
VIEW IN TELEGRAM
112👍2
🔥 Полезные библиотеки Python

Deepchecks

📌 Deepchecks — это мощная Python-библиотека для тестирования и валидации моделей и данных машинного обучения. Она помогает выявлять проблемы на всех этапах ML-пайплайна: от качества данных и дрейфа до метрик модели, overfitting/underfitting и несогласованности данных.

📌 Особенности библиотеки:
🟠 Комплексные проверки качества данных: пропущенные значения, дисбаланс, выбросы;
🟠 Валидирует модель: сравнивает с базовой, анализирует разницу в метриках;
🟠 Имеет готовые чек-листы для pre-deployment и мониторинга production;
🟠 Интерактивные HTML-отчёты — удобно делиться с коллегами;
🟠 Основана на популярных библиотеках (Pandas, scikit-learn, PyTorch), но предоставляет низкоуровневую надежность и силу.


⚙️ Установка:
pip install deepchecks


🔢 Документация

#библиотеки

🖥 Python_Scripts
Please open Telegram to view this post
VIEW IN TELEGRAM
1🔥4👍3
Website Change Monitor — скрипт, который автоматически отслеживает изменения на веб-странице и уведомляет тебя при каждом смене содержимого. Отлично подходит для слежки за динамическими страницами, продуктами, вакансиями и другими изменяемыми ресурсами.

📱 Python 3.8+
💾 Модули: requests, BeautifulSoup, hashlib, time, argparse

📌 Как работает:
🟠Загружает HTML указанной страницы
🟠Создаёт хэш содержимого
Периодично проверяет URL, сравнивает текущий хэш с предыдущим
🟠При обнаружении изменений выводит уведомление в терминал
🟠Основан на гайде "Python Script to Monitor Website Changes" (Medium)


🧑‍💻 Пример использования (CLI):
python site_monitor.py --url https://example.com --interval 60


👩‍💻 Код скрипта:
import requests
from bs4 import BeautifulSoup
import hashlib
import time
import argparse

def get_hash(url):
resp = requests.get(url, timeout=10)
resp.raise_for_status()
soup = BeautifulSoup(resp.text, 'html.parser')
text = soup.get_text()
return hashlib.md5(text.encode('utf-8')).hexdigest()

def monitor(url, interval):
last_hash = None
print(f"🚀 Monitoring {url} every {interval}s...")
while True:
try:
current_hash = get_hash(url)
if last_hash is None:
last_hash = current_hash
elif current_hash != last_hash:
print(f"🔔 Change detected at {time.strftime('%Y-%m-%d %H:%M:%S')}")
last_hash = current_hash
except Exception as e:
print(f" Error: {e}")
time.sleep(interval)

if __name__ == "__main__":
parser = argparse.ArgumentParser(description="Website Change Monitor")
parser.add_argument("--url", required=True, help="URL to monitor")
parser.add_argument("--interval", type=int, default=60, help="Check interval in seconds")
args = parser.parse_args()
monitor(args.url, args.interval)


📌 Скрипт:
🟠Получает текст страницы через requests + BeautifulSoup
🟠Хэширует содержимое для обнаружения изменений
🟠Работает в бесконечном цикле с интервалом
🟠Лёгкий, без сложностей и зависимостей помимо BeautifulSoup


⚙️ Установка зависимости:
pip install requests beautifulsoup4


#скрипты

🖥 Python_Scripts
Please open Telegram to view this post
VIEW IN TELEGRAM
7👍3
telegram_gemini_bot-master.zip
49.6 KB
🤖 Telegram Gemini Bot

😊 Многофункциональный Telegram-бот с поддержкой текста, голоса, изображений и файлов, использующий Google Gemini AI и другие сервисы.

📌 Основные возможности:
🟠Ответы с ИИ (Google Gemini).
🟠Распознавание речи и преобразование голосовых сообщений в текст.
🟠Анализ изображений (OCR и Vision API).
🟠Работа с текстовыми, PDF, CSV, Excel файлами.
🟠Прогноз погоды по команде /weather.
🟠Настройка стиля общения с ИИ.
🟠Озвучивание ответов и генерация голосовых сообщений.
🟠Перевод текста на разные языки.
🟠Авторизация пользователей через список ID.


📱 Технологии:
👇Python 3.11
👇aiogram
👇Google Gemini API
👇SQLite (aiosqlite)
👇OpenWeatherMap API
👇Tesseract OCR
👇SpeechRecognition
👇gTTS, Pydub (FFmpeg)
👇Pandas, OpenPyXL, PyPDF2
👇googletrans
👇Loguru
👇python-dotenv


🧑‍💻 Установка:
git clone https://github.com/discolite/telegram_gemini_bot.git
cd telegram_gemini_bot
python3 -m venv venv
source venv/bin/activate
pip install -r requirements.txt


💬 Скопируйте .env.example в .env и заполните необходимые переменные окружения.

🖥 Python_Scripts
Please open Telegram to view this post
VIEW IN TELEGRAM
1👍155🔥5
🔥 Полезные библиотеки Python

dask

📌 dask — мощная и малоизвестная библиотека для параллельных вычислений в Python. Она расширяет привычные API NumPy, Pandas и scikit-learn, позволяя запускать код на многопоточной системе или в распределённом кластере — без переписывания логики под MapReduce или Spark.

📌 Особенности библиотеки:
🟠 Масштабирование: от одного ядра до всего кластера.
🟠 Совместимый синтаксис: DataFrame, Array, ML API аналогичны знакомым библиотекам.
🟠 Отличается удобством и гибкостью: можно начать с локальных расчётов, а затем перенести тот же код в прод.
🟠 Используется крупными компаниями: Walmart, Nvidia, NASA, Capital One и другими.
🟠 Открытый исходник, активное развитие, последний релиз был в феврале 2024.


⚙️ Установка:
pip install dask[complete]


(пакет с зависимостями для полного функционала — параллельные файловые системы, SQL, ML и др.)

🔢 Документация

#библиотеки

🖥 Python_Scripts
Please open Telegram to view this post
VIEW IN TELEGRAM
👍52
🔥 Полезные библиотеки Python

Plumbum

📌 Plumbum — это мощная Python-библиотека, упрощающая написание скриптов автоматизации в стиле shell. Позволяет выполнять команды, пайпить их, работать с локальными/удалёнными процессами, как в bash, но на Python.

📌 Особенности библиотеки:
🟠Shell-like синтаксис: ls | grep[".py"] > "out.txt"
🟠Работа с удалёнными машинами через SSH
🟠Локальные команды и алиасы
🟠Безопаснее и удобнее, чем os.system или subprocess


⚙️ Установка:
pip install plumbum



🔢 Документация

#библиотеки

🖥 Python_Scripts
Please open Telegram to view this post
VIEW IN TELEGRAM
15👍2🔥2
Automated Weekly Report Summarizer — скрипт, который каждую неделю автоматически загружает утёкшую PDF‑отчётность с сайта, извлекает текст, запрашивает резюме у OpenAI API и сохраняет результаты в структуре JSON. Отлично подходит для аналитики, мониторинга KPI и автоматизации отчётности.

📱 Python 3.9+
💾 Модули: requests, PyPDF2, openai, schedule, argparse

📌 Как работает:
🟠Загружает PDF-отчёты с защищённого сайта (при необходимости авторизация)
🟠Извлекает текст из PDF (PyPDF2)
🟠Отправляет текст в OpenAI для резюмирования
🟠Сохраняет итоговую структуру: date, summary, key_points, risk_section в JSON
🟠Автоматически запускается каждую неделю по расписанию (schedule)


🧑‍💻 Пример использования (CLI):
python weekly_report.py --url https://example.com/reports/weekly.pdf \
--schedule "every Monday" --output report.json


👨‍💻 Пример кода:
import requests, PyPDF2, openai, schedule, time, argparse, json
from io import BytesIO

def fetch_pdf(url):
resp = requests.get(url)
resp.raise_for_status()
return BytesIO(resp.content)

def extract_text(pdf_stream):
reader = PyPDF2.PdfReader(pdf_stream)
return "\n".join(page.extract_text() or "" for page in reader.pages)

def summarize(text):
resp = openai.ChatCompletion.create(
model="gpt-3.5-turbo",
messages=[{"role": "system", "content": "You summarize professionally."},
{"role": "user", "content": text}],
)
return resp.choices[0].message.content.strip()

def job(url, output):
pdf = fetch_pdf(url)
text = extract_text(pdf)
summary = summarize(text)
data = {"url": url, "summary": summary, "timestamp": time.strftime("%Y-%m-%d")}
with open(output, "a", encoding="utf-8") as f:
f.write(json.dumps(data, ensure_ascii=False) + "\n")
print(" Report summarized")

def main(args):
schedule.every().monday.do(job, args.url, args.output)
print("🚀 Scheduler started")
while True:
schedule.run_pending()
time.sleep(60)

if __name__ == "__main__":
p = argparse.ArgumentParser()
p.add_argument('--url', required=True, help='URL PDF отчёта')
p.add_argument('--schedule', default='every Monday')
p.add_argument('--output', default='weekly_reports.json')
args = p.parse_args()
openai.api_key = args.openai_key or os.getenv("OPENAI_API_KEY")
main(args)


⚙️ Установка зависимостей:
pip install requests PyPDF2 openai schedule


#скрипты

🖥 Python_Scripts
Please open Telegram to view this post
VIEW IN TELEGRAM
110🔥4👍2
🎧 Локальный плеер аудиокниг/подкастов с закладками и продолжением с места 🥳

🔍 Где применимо?
Слушай книгу по частям без потери места
Удобно для изучающих язык — возвращаться на нужный момент
Повтор занятий и лекций
Прост в использовании и работает офлайн


import pygame
import time
import os
import json

AUDIO_FILE = "audiobook.mp3"
PROGRESS_FILE = "progress.json"

pygame.mixer.init()
pygame.mixer.music.load(AUDIO_FILE)

# Загрузка позиции
if os.path.exists(PROGRESS_FILE):
with open(PROGRESS_FILE) as f:
data = json.load(f)
position = data.get(AUDIO_FILE, 0)
print(f"▶️ Продолжаем с {round(position, 2)} сек")
else:
position = 0

pygame.mixer.music.play(start=position)

try:
while pygame.mixer.music.get_busy():
time.sleep(1)
except KeyboardInterrupt:
current_pos = pygame.mixer.music.get_pos() / 1000 + position
with open(PROGRESS_FILE, "w") as f:
json.dump({AUDIO_FILE: current_pos}, f)
print(f"\n⏸️ Остановлено на {round(current_pos, 2)} сек. Позиция сохранена.")


#скрипты

🖥 Python_Scripts
Please open Telegram to view this post
VIEW IN TELEGRAM
👍73🔥2😁2
🔥 Полезные библиотеки Python

peewee

📌 peewee — это лёгкий ORM для Python, с лаконичным синтаксисом, поддержкой SQLite, PostgreSQL и MySQL. Отлично подходит для небольших и средних проектов.

📌 Особенности библиотеки:
🟠Очень простой и понятный синтаксис
🟠Поддержка миграций (pwiz, playhouse.migrate)
🟠Поддерживает связи (ForeignKey, ManyToMany)
🟠Есть расширения (playhouse) для кэша, сигналов, миграций и др.


⚙️ Установка:
pip install peewee


🔢 Документация

#библиотеки

🖥 Python_Scripts
Please open Telegram to view this post
VIEW IN TELEGRAM
3
🌃 Быстрое и надёжное массовое переименование файлов в Python

📌 Делюсь готовым решением для автоматического замены части имени файлов в указанной директории.

📌 Скрипт включает проверку пути, обработку ошибок и защиту от конфликтов имён.

import os

def bulk_rename(folder_path, old_name_part, new_name_part):

if not os.path.isdir(folder_path):
raise NotADirectoryError(f"Путь «{folder_path}» не найден")

for filename in os.listdir(folder_path):
if old_name_part in filename:
new_filename = filename.replace(old_name_part, new_name_part)
old_full = os.path.join(folder_path, filename)
new_full = os.path.join(folder_path, new_filename)

# Пропускаем, если имена совпадают
if old_full == new_full:
print(f"Пропущено (имена совпадают): {filename}")
continue

try:
os.rename(old_full, new_full)
print(f"Переименовано: {filename} → {new_filename}")
except OSError as e:
print(f"Ошибка при переименовании {filename}: {e}")

if __name__ == "__main__":
folder = '/path/to/your/folder'
bulk_rename(folder, 'old_part', 'new_part')


#скрипты

🖥 Python_Scripts
Please open Telegram to view this post
VIEW IN TELEGRAM
8👍1
🔥 Полезные библиотеки Python

molecule

📌 Molecule — это инструмент для тестирования ролей и плейбуков Ansible. Он помогает DevOps-инженерам автоматически проверять, что инфраструктурный код работает корректно до применения в проде.

📌 Особенности:
🟠Поддержка Docker, Vagrant, Podman, EC2 и других драйверов
🟠Интеграция с Ansible, Testinfra, Goss
🟠Автоматические проверки, линтинг и CI
🟠Подходит для TDD в инфраструктуре


🔢 Документация

#библиотеки

🖥 Python_Scripts
Please open Telegram to view this post
VIEW IN TELEGRAM
4👍1
👩‍💻 Полезные библиотеки Python

Rich-click

📌 Библиотека Python, надстройка над популярной библиотекой click, которая добавляет цветные, структурированные и очень красивые интерфейсы командной строки, используя мощь rich.

📌 Особенности:
🟠 Улучшает UX CLI-приложений без переписывания кода
🟠 Делает утилиты выглядящими профессионально сразу
🟠 Полезен для инструментов разработчика, DevOps-скриптов, Open Source
🟠 Минимальные усилия → максимальный эффект


⚙️ Установка:
pip install rich-click


🔢 Документация

#библиотеки

🖥 Python_Scripts
Please open Telegram to view this post
VIEW IN TELEGRAM
5👍2🔥2
🔥 Полезные библиотеки Python

testinfra

📌 Testinfra — это библиотека для тестирования серверов с помощью Python. Позволяет проверять конфигурацию, пакеты, файлы, службы и пользователей на удалённых машинах, как юнит-тесты.

📌 Особенности:
🟠Пишется на Python, использует pytest
🟠Проверка состояния системы: файлов, пакетов, сервисов
🟠Работает через SSH, Docker, локально и др.
🟠Идеален для DevOps, CI/CD, Ansible и Molecule


⚙️ Установка:
pip install testinfra


🔢 Документация

#библиотеки

🖥 Python_Scripts
Please open Telegram to view this post
VIEW IN TELEGRAM
6👍4🔥3
YouTube Thumbnail Downloader — скрипт, который скачивает миниатюры видео (thumbnail) из YouTube по указанному списку URL. Удобен для автоматизации сбора медиа-контента, аналитики или генерации базы превью-изображений.

📱 Python 3.8+
💾 Модули: requests, argparse, os, re

📌 YouTube Thumbnail Downloader:
🟠Получает список ссылок на видео YouTube
🟠Извлекает video ID с помощью регулярных выражений
🟠Загружает максимальную по доступности миниатюру (maxresdefault.jpg или hqdefault.jpg)
🟠Сохраняет в указанную директорию со стандартным именем


🧑‍💻 Пример использования (CLI):
python yt_thumb_downloader.py --urls video_urls.txt --dir thumbnails


👨‍💻 Код скрипта:
import requests
import argparse
import os
import re

YOUTUBE_THUMB_URL = "https://img.youtube.com/vi/{}/maxresdefault.jpg"
FALLBACK_URL = "https://img.youtube.com/vi/{}/hqdefault.jpg"
ID_PATTERN = r"(?:v=|youtu\.be/)([A-Za-z0-9_-]{11})"

def extract_id(url):
m = re.search(ID_PATTERN, url)
return m.group(1) if m else None

def download_thumb(video_id, save_dir):
url = YOUTUBE_THUMB_URL.format(video_id)
r = requests.get(url)
if r.status_code != 200:
url = FALLBACK_URL.format(video_id)
r = requests.get(url)
if r.status_code == 200:
path = os.path.join(save_dir, f"{video_id}.jpg")
with open(path, "wb") as f:
f.write(r.content)
print(f" Downloaded {path}")
else:
print(f" Failed thumbnail for {video_id}")

def main(urls_file, save_dir):
os.makedirs(save_dir, exist_ok=True)
with open(urls_file, encoding="utf-8") as f:
for line in f:
url = line.strip()
vid = extract_id(url)
if vid:
download_thumb(vid, save_dir)
else:
print(f" Can't extract ID from {url}")

if __name__ == "__main__":
p = argparse.ArgumentParser()
p.add_argument("--urls", required=True, help="Файл со ссылками YouTube")
p.add_argument("--dir", required=True, help="Папка для сохранения")
args = p.parse_args()
main(args.urls, args.dir)


📌 Установка зависимости:
pip install requests


#скрипты

🖥 Python_Scripts
Please open Telegram to view this post
VIEW IN TELEGRAM
17🔥5👍4
🔥 Полезные библиотеки Python

vault-cli

📌 vault-cli — это Python-обёртка для работы с HashiCorp Vault, хранилищем секретов. Упрощает получение, установку и управление секретами из CLI или скриптов.

📌 Особенности библиотеки:
🟠Чтение/запись секретов через Python или CLI
🟠Поддержка Vault API (v1)
🟠Можно использовать в CI/CD пайплайнах
🟠Конфигурация через YAML/ENV-переменные


⚙️ Установка:
pip install vault-cli


🔢 Документация

#библиотеки

🖥 Python_Scripts
Please open Telegram to view this post
VIEW IN TELEGRAM
7👍3🔥2
MySQL Backup to S3 — Python‑скрипт, который создаёт дамп MySQL, архивирует и загружает его на Amazon S3. Подходит для автоматизации резервных копий, безопасного хранения и обеспечения Disaster Recovery.

📱 Требования: Python 3.x
💾 Модули: subprocess, boto3, os, time

📌 MySQL Backup to S3:
🟠 Выполняет mysqldump через subprocess
🟠 Архивирует папку или файл дампа в .tar.gz с таймстампом
🟠 Загружает архив в указанный S3‑бакет через boto3
🟠 Обрабатывает ошибки доступа и отсутствия файла
🟠 Удобен для cron‑запусков и CI/CD интеграции


🧑‍💻 Пример использования (CLI):
python backup_mysql_s3.py \
--host localhost --user root --password pwd \
--db mydatabase --bucket my-s3-bucket --dest backups/


👨‍💻 Код скрипта:
import subprocess, boto3, time, os
from botocore.exceptions import NoCredentialsError

def dump_db(host, user, password, db, out_file):
cmd = [
"mysqldump", "-h", host, "-u", user, f"-p{password}", db
]
with open(out_file, "wb") as f:
subprocess.run(cmd, stdout=f, check=True)

def archive(src, dest_dir):
ts = time.strftime("%Y%m%d%H%M%S")
archive_name = os.path.join(dest_dir, f"backup_{ts}.tar.gz")
subprocess.run(["tar", "-czf", archive_name, src], check=True)
return archive_name

def upload_s3(file_path, bucket, key=None):
s3 = boto3.client("s3")
if key is None:
key = os.path.basename(file_path)
try:
s3.upload_file(file_path, bucket, key)
print(f" Backup uploaded to s3://{bucket}/{key}")
except FileNotFoundError:
print(" File not found:", file_path)
except NoCredentialsError:
print(" AWS credentials are missing")

def main(args):
os.makedirs(args.dest, exist_ok=True)
dump_file = os.path.join(args.dest, f"{args.db}.sql")
dump_db(args.host, args.user, args.password, args.db, dump_file)
archive_path = archive(dump_file, args.dest)
upload_s3(archive_path, args.bucket)

if __name__ == "__main__":
import argparse
p = argparse.ArgumentParser()
p.add_argument("--host", required=True)
p.add_argument("--user", required=True)
p.add_argument("--password", required=True)
p.add_argument("--db", required=True)
p.add_argument("--bucket", required=True)
p.add_argument("--dest", default=".")
args = p.parse_args()
main(args)


📌 Установка зависимостей:
pip install boto3


#скрипты

🖥 Python_Scripts
Please open Telegram to view this post
VIEW IN TELEGRAM
5👍3🔥1
🔥 Полезные библиотеки Python

ArviZ

📌 ArviZ — специализированная библиотека для исследования и визуализации результатов байесовского моделирования. Она работает в связке с Python-фреймворками для вероятностного программирования, такими как PyMC, Stan, Pyro и другими, облегчая анализ MCMC-сэмплов, диагностику и визуальный отчёт.

📌 Особенности библиотеки:
🟠 Unified InferenceData: Структурированный способ организации posteriors, предсказаний, наблюдений и логов в одном объекте.
🟠 Расширенные визуализации: traceplots, diagnostics (R-hat, ESS), posterior_predictive checks через Matplotlib и Bokeh.
🟠 Интеграция с популярными инструментами: поддержка PyMC, Pyro, Stan и xarray.
🟠 Поддержка аналитики Bayes-моделей: summarization, posterior checks, model comparison и diagnostics удобны и понятны.
🟠 Открытый проект, активно развивается, лицензия Apache 2.0.


⚙️ Установка:
pip install arviz

🧑‍💻 Пример использования:

import arviz as az
import pymc as pm

with pm.Model() as model:
α = pm.Normal("α", 0, 1)
β = pm.Normal("β", 0, 1)
σ = pm.HalfNormal("σ", 1)
μ = α + β * pm.Data("x", [1,2,3,4,5])
y = pm.Normal("y", μ, σ, observed=[1.2,1.9,2.8,4.1,4.9])
idata = pm.sample(return_inferencedata=True)

# Cводка результатов
print(az.summary(idata, var_names=["α", "β", "σ"]))

# Трассировка параметров и автокорреляции
az.plot_trace(idata, var_names=["α", "β"])


🔢 Документация

#библиотеки

🖥 Python_Scripts
Please open Telegram to view this post
VIEW IN TELEGRAM
4🔥3👍2
Bulk PDF Merger — утилита, которая объединяет все PDF-файлы из указанной папки в один итоговый документ. Простой инструмент для подготовки отчётов, документации, сборов материалов в одно PDF.

📱 Python 3.8+
💾 Модули: PyPDF2, argparse, os

📌 Bulk PDF Merger:
🟠Ищет все файлы .pdf в указанной директории
🟠Объединяет их в порядке сортировки по имени в единственный PDF
🟠Сохраняет итоговое объединение в указанное имя файла
🟠Полезен для сбора статей, отчетов, документов или презентаций


🧑‍💻 Пример использования (CLI):
python pdf_merger.py --input-dir ./pdfs --output merged_all.pdf


👨‍💻 Код скрипта:
import os
import argparse
from PyPDF2 import PdfMerger

def merge_pdfs(input_dir, output_file):
merger = PdfMerger()
pdf_files = sorted([
f for f in os.listdir(input_dir)
if f.lower().endswith('.pdf')
])
for pdf in pdf_files:
path = os.path.join(input_dir, pdf)
merger.append(path)
print(f" Appended: {pdf}")
merger.write(output_file)
merger.close()
print(f"📄 Merged into: {output_file}")

if __name__ == "__main__":
parser = argparse.ArgumentParser(description="Bulk PDF Merger")
parser.add_argument('--input-dir', required=True, help='Папка с PDF')
parser.add_argument('--output', required=True, help='Имя итогового PDF')
args = parser.parse_args()
merge_pdfs(args.input_dir, args.output)


⚙️ Установка зависимости:
pip install PyPDF2


📌 Где пригодится:
🟠Компиляция серии отчетов или документов в единый PDF-файл
🟠Автоматизация сборки документации
🟠Удобное решение для подготовки больших PDF из множества файлов


#скрипты

🖥 Python_Scripts
Please open Telegram to view this post
VIEW IN TELEGRAM
6🔥5
🔥 Полезные библиотеки Python

Nuitka

📌 Nuitka — компилятор исходного Python кода, преобразующий его в C с последующей генерацией бинарных исполняемых файлов. Это дает прирост производительности, оптимизацию исполнения и возможность распространять готовые бинарные приложения без установки Python. Поддержка большинства возможностей Python 3.3–3.13.

📌 Особенности библиотеки:
🟠 Преобразует Python-файлы в C-код, затем компилирует в нативные бинарники (используя gcc, clang или MinGW)
🟠 Поддерживает большинство современных возможностей языка: аннотации типов, итераторы, вызовы, конструкции управления и пр.
🟠 Оптимизации на этапе компиляции: константное сворачивание, прогноз вызова встроенных функций, вывод неизменных типов — ускорение до 1.5–2× по сравнению с CPython
🟠 Можно собирать в standalone-приложения — готовые исполняемые файлы выдаются без зависимости от Python-установки у пользователя
🟠 Активно развивается: последняя версия 2.6.9 вышла 28 марта 2025 года


⚙️ Установка:
pip install nuitka


🔢 Документация

#библиотеки

🖥 Python_Scripts
Please open Telegram to view this post
VIEW IN TELEGRAM
14👍7