✔ Быстрое раздавание данных для фронта/аналитики
✔ Прототипы: MVP, admin-tools, панели
✔ Коннектор для Excel, CSV, SQLite, даже Google Sheets
✔ Расширяемый API под любые задачи
from fastapi import FastAPI, HTTPException
from pydantic import BaseModel
import pandas as pd
app = FastAPI()
df = pd.read_csv("data.csv")
# Автоматическое определение модели из DataFrame
class Record(BaseModel):
id: int
name: str
value: float
@app.get("/records")
def get_records():
return df.to_dict(orient="records")
@app.get("/records/{record_id}")
def get_record(record_id: int):
match = df[df["id"] == record_id]
if match.empty:
raise HTTPException(status_code=404, detail="Not found")
return match.to_dict(orient="records")[0]
@app.post("/records")
def add_record(record: Record):
global df
df = pd.concat([df, pd.DataFrame([record.dict()])], ignore_index=True)
return {"message": "Добавлено"}
@app.delete("/records/{record_id}")
def delete_record(record_id: int):
global df
df = df[df["id"] != record_id]
return {"message": "Удалено"}
# Запуск:
# uvicorn script:app --reload
Please open Telegram to view this post
VIEW IN TELEGRAM
👍14❤2🔥2
💾 Boltons
🔍 Особенности:
🔐 Отсутствие зависимостей — можно использовать в любом проекте
🚀 Удобные интерфейсы, написанные с реальными кейсами в голове
💡 Подходит как для прототипов, так и для продакшн-кода
🎯 Поддерживается с 2013 года, используется в больших проектах
⚙️ Установка 👇👇👇
pip install boltons
#библиотеки
Please open Telegram to view this post
VIEW IN TELEGRAM
❤7🔥4👍2
ipril-main.zip
7.7 KB
💻 ЯП: Python 3.11+🐍
💾 Модули: python-telegram-bot, requests
📂 База данных: sqlite3
#telegram
Please open Telegram to view this post
VIEW IN TELEGRAM
👍10🔥3❤1
✔ Внутренние CLI-инструменты для команды
✔ DevOps-скрипты, CI/CD, деплой
✔ Утилиты для обработки данных, генерации отчётов
✔ Обёртки над скриптами, которые хочется запускать красиво
import typer
app = typer.Typer()
user_app = typer.Typer()
app.add_typer(user_app, name="user")
@user_app.command()
def create(name: str, admin: bool = False):
typer.echo(f"Создан пользователь: {name}, Админ: {admin}")
@user_app.command()
def delete(name: str):
typer.echo(f"Удалён пользователь: {name}")
@app.command()
def export(format: str = typer.Option("json", help="Формат экспорта")):
typer.echo(f"Экспорт данных в формате: {format}")
if __name__ == "__main__":
app()
Please open Telegram to view this post
VIEW IN TELEGRAM
1👍10❤2
💾 Glom
🔍 Особенности:
🔐 Безопасен — если чего-то нет, можно задать поведение по умолчанию
🚀 Устраняет сложные и длинные цепочки dict.get().get()
💡 Позволяет писать декларативный, читаемый и повторно используемый код
🎯 Идеален для парсинга API-ответов, ETL, адаптеров, трансформеров данных
⚙️ Установка 👇👇👇
pip install glom
#библиотеки
Please open Telegram to view this post
VIEW IN TELEGRAM
1👍10❤2🔥2
iron_pulse-main.zip
3.3 KB
💻 ЯП: Python 3.11+🐍
💾 Модули: aiogram
📂 База данных: -
Автоматически отправляет настраиваемые приветственные сообщения пользователям и поддерживает inline кнопки.
#telegram
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7🔥3❤2👏2
✔ Разметка и разбор голосовых сообщений, подкастов, митингов
✔ Подготовка данных для Whisper, Google Speech и других ASR
✔ Монтаж и автообработка больших аудиофайлов
✔ Распознавание структуры речи без ручной нарезки
from pydub import AudioSegment
from pydub.silence import split_on_silence
import os
# Загрузка аудиофайла
sound = AudioSegment.from_file("meeting.wav", format="wav")
# Нарезка по тишине
chunks = split_on_silence(
sound,
min_silence_len=1000, # миллисекунд тишины
silence_thresh=sound.dBFS - 16, # относительный порог тишины
keep_silence=500
)
# Создание папки
os.makedirs("chunks", exist_ok=True)
# Сохраняем куски
for i, chunk in enumerate(chunks):
out_file = f"chunks/segment_{i+1}.wav"
chunk.export(out_file, format="wav")
print(f"✅ Сохранён: {out_file}")
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7❤2🔥2
💾 Doit
🔍 Особенности:
🚀 Автоматизация без головной боли Makefile и bash
🔥 Работает на Windows, Linux, macOS одинаково
💡 Подходит для разработки, CI/CD, науки, ML, DevOps
🎯 Код — это обычный Python, без ограничений
⚙️ Установка 👇👇👇
pip install doit
#библиотеки
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5🔥4❤2🤩1
AutoResponderBot-master.zip
32.9 KB
💻 ЯП: Python 3.11+🐍
💾 Модули: aiogram, openai
📂 База данных: sqlite3
Этот бот особенно полезен для поддержки клиентов и администрирования чатов, обеспечивая своевременные ответы в рабочие часы и корректные уведомления в нерабочие.
Основные функции:
- Автоматический ответ по расписанию
- Обработка ключевых слов
- Логирование действий пользователей
- Гибкость настроек
#telegram
Please open Telegram to view this post
VIEW IN TELEGRAM
👍12❤4🔥3👏1
✔ DevOps: слежение за uptime серверов и API
✔ Коммерческие проекты: контроль SLA
✔ Разработка: отладка доступа к staging/prod
✔ Личный мониторинг инфраструктуры и бэкендов
import requests
import time
from datetime import datetime
from rich.table import Table
from rich.console import Console
console = Console()
# Список сайтов для мониторинга
targets = [
"https://google.com",
"https://github.com",
"https://your-custom-api.com/health"
]
def check_sites():
results = []
for url in targets:
try:
start = time.time()
response = requests.get(url, timeout=5)
latency = round((time.time() - start) * 1000, 2)
results.append((url, response.status_code, latency, "OK" if response.ok else "FAIL"))
except Exception as e:
results.append((url, "ERR", "-", str(e)))
return results
def display_table(results):
table = Table(title=f"Состояние сайтов — {datetime.now().strftime('%H:%M:%S')}")
table.add_column("URL")
table.add_column("Код ответа")
table.add_column("Задержка (мс)")
table.add_column("Статус")
for row in results:
table.add_row(*[str(r) for r in row])
console.clear()
console.print(table)
# 🔁 Бесконечный мониторинг
while True:
res = check_sites()
display_table(res)
time.sleep(60) # каждые 60 секунд
Please open Telegram to view this post
VIEW IN TELEGRAM
👍11❤2
💾 Python-Kasa
🔍 Особенности:
⚡ Автоматизация физических устройств из Python
📡 Полностью локальное управление без облака (privacy-friendly)
💡 Подходит для DIY-умного дома, энергоаналитики, автоматизации работы
🎯 Поддерживает async, легко интегрируется с голосовыми и системными ассистентами
⚙️ Установка 👇👇👇
pip install python-kasa
#библиотеки
Please open Telegram to view this post
VIEW IN TELEGRAM
1🔥12❤2👍1
TelegramMaster-GPT-Comments-master.zip
100.9 KB
💻 ЯП: Python 3.11+🐍
💾 Модули: telethon, flet, groq
📂 База данных: sqlite3
#telegram
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥12👍5❤2
✔ Telegram-бот “сделай мем”
✔ Сборщики новостей, комментов, сатиры
✔ Генерация контента для соцсетей
✔ Игровые проекты, кастомные аватары, NFT-арт
from PIL import Image, ImageDraw, ImageFont
def create_meme(image_path, top_text, bottom_text, output_path="meme_result.jpg"):
img = Image.open(image_path)
draw = ImageDraw.Draw(img)
width, height = img.size
font_size = int(height / 12)
font = ImageFont.truetype("arial.ttf", font_size)
def draw_text(text, y_pos):
text = text.upper()
text_width, _ = draw.textsize(text, font=font)
x = (width - text_width) / 2
draw.text((x, y_pos), text, font=font, fill="white", stroke_width=2, stroke_fill="black")
draw_text(top_text, 10)
draw_text(bottom_text, height - font_size - 20)
img.save(output_path)
print(f"✅ Мем сохранён как {output_path}")
# Пример использования
create_meme("cat_template.jpg", "КОГДА ПИШЕШЬ НА PYTHON", "И ВСЁ РАБОТАЕТ СРАЗУ")
Please open Telegram to view this post
VIEW IN TELEGRAM
👍13😁9
💾 Asciimatics
🔍 В Особенности:
🎨 Позволяет строить "графику" в терминале
🧠 Подходит для визуальных CLI-интерфейсов, системных панелей, стартапов и даже TUI-игр
📦 Не требует GUI или браузера — работает везде
🔥 Один из немногих фреймворков с полноценной TUI-графикой
⚙️ Установка 👇👇👇
pip install asciimatics
#библиотеки
Please open Telegram to view this post
VIEW IN TELEGRAM
👍17
TelegramMaster-2.0-master.zip
1.9 MB
💻 ЯП: Python 3.11+🐍
💾 Модули: telethon, flet, pysocks, flask
📂 База данных: sqlite3
Основные возможности:
📩 Инвайтинг (приглашение пользователей без лимитов, по расписанию и др.)
🔍 Парсинг (сбор данных о группах, каналах и участниках)
📇 Работа с контактами (добавление, удаление и управление контактами)
📢 Подписка и отписка от каналов/групп
📤 Рассылка сообщений и файлов (в личные сообщения и группы с автоответчиками)
👁️🗨️ Работа с реакциями (накрутка просмотров и автоматизация реакций)
🛠️ Управление аккаунтами (проверка, подключение, настройки лимитов и прокси)
✏️ Редактирование профиля (BIO, username, фото)
⏳ Настройки лимитов и времени (для подписки, инвайтинга и рассылки)
#telegram
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥17❤5👍4😁3
✔ Поиск по документации, заметкам, .md/.txt/.py файлам
✔ Локальный альтернативный поиск по коду
✔ Быстрая навигация в больших проектах
✔ Создание консольной справочной системы
from whoosh.index import create_in
from whoosh.fields import Schema, TEXT, ID
from whoosh.qparser import QueryParser
from rich.console import Console
from rich.markdown import Markdown
import os
# Создание схемы
schema = Schema(title=ID(stored=True), content=TEXT)
# Создание индекса
if not os.path.exists("index"):
os.mkdir("index")
ix = create_in("index", schema)
# Индексация файлов
writer = ix.writer()
for root, _, files in os.walk("docs"):
for file in files:
if file.endswith((".txt", ".md", ".py", ".html")):
path = os.path.join(root, file)
with open(path, encoding="utf-8", errors="ignore") as f:
content = f.read()
writer.add_document(title=file, content=content)
writer.commit()
print("✅ Индексация завершена.")
# Поиск
console = Console()
with ix.searcher() as searcher:
query_str = input("🔎 Поиск: ")
parser = QueryParser("content", schema=ix.schema)
query = parser.parse(query_str)
results = searcher.search(query, limit=5)
if results:
for hit in results:
console.rule(f"[green]Файл: {hit['title']}")
snippet = hit.highlights("content", top=3)
console.print(Markdown(snippet))
else:
print("😕 Ничего не найдено.")
Please open Telegram to view this post
VIEW IN TELEGRAM
👍12🔥3❤1
💾 Apprise
🔍 Особенности:
🚀 Одна библиотека — десятки каналов связи
🔥 Упрощает и стандартизирует отправку нотификаций
💡 Идеальна для DevOps, администраторов, скриптов, ассистентов
🎯 Поддержка и CLI, и Python, и Docker
⚙️ Установка 👇👇👇
pip install apprise
#библиотеки
Please open Telegram to view this post
VIEW IN TELEGRAM
👍15❤2
tg-bot-blur-and-crop-main.zip
10.6 MB
💻 ЯП: Python 3.11+🐍
💾 Модули: aiogram, pillow
📂 База данных: -
#telegram
Please open Telegram to view this post
VIEW IN TELEGRAM
👍10❤3
✔ Личный помощник при работе от батареи
✔ Уведомления при низком заряде
✔ Системы энергосбережения
✔ Монитор в трее, фоновая служба, DevOps-наблюдение
import psutil
import time
from rich.console import Console
from rich.progress import Progress, BarColumn, TextColumn
console = Console()
def get_battery_status():
battery = psutil.sensors_battery()
if battery is None:
return None
return {
"percent": battery.percent,
"plugged": battery.power_plugged,
"secsleft": battery.secsleft
}
def format_time(seconds):
if seconds == psutil.POWER_TIME_UNLIMITED:
return "∞"
elif seconds == psutil.POWER_TIME_UNKNOWN:
return "??"
else:
h = seconds // 3600
m = (seconds % 3600) // 60
return f"{h} ч {m} мин"
while True:
status = get_battery_status()
if not status:
console.print("[bold red]Батарея не найдена.[/bold red]")
break
percent = status["percent"]
plugged = status["plugged"]
time_left = format_time(status["secsleft"])
state = "🔌 На зарядке" if plugged else "🔋 На батарее"
console.clear()
console.rule("[bold green] Монитор батареи [/bold green]")
with Progress(
TextColumn("[progress.percentage]{task.percentage:>3.0f}%"),
BarColumn(bar_width=40),
TextColumn(f"{state} | Осталось: {time_left}"),
) as progress:
task = progress.add_task("Батарея", total=100, completed=percent)
time.sleep(2)
Please open Telegram to view this post
VIEW IN TELEGRAM
👍16❤4
💾 PyWebOSTV
🔍 Особенности:
📺 Позволяет интегрировать ТВ в smart home без приложений
🔥 Работает на уровне ОС телевизора (API WebOS)
💡 Подходит для медиацентров, ассистентов, диспетчеров расписаний
🎯 Прост в настройке и кроссплатформенный
⚙️ Установка 👇👇👇
pip install PyWebOSTV
#библиотеки
Please open Telegram to view this post
VIEW IN TELEGRAM
1👍10❤1