py-pglite — обёртка PGlite для Python, позволяющая запускать настоящую базу PostgreSQL прямо при тестах. Без Docker, без настройки — просто импортируй и работай.
📌 Почему это круто:
- 🧪 Ноль конфигурации: никакого Postgres и Docker, только Python
- ⚡ Молниеносный старт: 2–3 с против 30–60 с на традиционные подходы :contentReference[oaicite:2]{index=2}
- 🔐 Изолированные базы: новая база для каждого теста — чисто и безопасно
- 🏗️ Реальный Postgres: работает с JSONB, массивами, оконными функциями
- 🔌 Совместимость: SQLAlchemy, Django, psycopg, asyncpg — любая связка :contentReference[oaicite:3]{index=3}
💡 Примеры установки:
pip install py-pglite
pip install py-pglite[sqlalchemy] # SQLAlchemy/SQLModel
pip install py-pglite[django] # Django + pytest-django
pip install py-pglite[asyncpg] # Асинхронный клиент
pip install py-pglite[all] # Всё сразу
🔧 Пример (SQLAlchemy)
python
def test_sqlalchemy_just_works(pglite_session):
user = User(name="Alice")
pglite_session.add(user)
pglite_session.commit()
assert user.id is not None
py‑pglite — идеальный инструмент для unit- и интеграционных тестов, где нужен настоящий Postgres, но без всей админской рутины.
Полноценный PostgreSQL — без его тяжеловесности.
▪Github
@pythonl
#python #sql #PostgreSQL #opensource
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥20❤9👍7🤩1
🎨 MonsterUI — стильный UI для FastHTML на Python (от Answer.AI)
MonsterUI — это высокоуровневый слой поверх FastHTML, который позволяет быстро создавать красивые веб-интерфейсы на чистом Python без писанины HTML/CSS.
⚙️ Проблема
FastHTML и так упрощает фронтенд, но стильность UI требует громоздких классов или CSS-фреймворков (Tailwind, Bootstrap).
MonsterUI решает это, предоставляя готовые компоненты и умные настройки по умолчанию.
✨ Главные возможности
• Полюбившиеся Tailwind/FrankenUI/DaisyUI скрылки под капотом
• Удобные базовые компоненты:
• Семантический текст и стили (H1, P, Blockquote, etc.), оформленные по умолчанию
• Умные layout-хелперы:
• «Высокоуровневые» компоненты: навбар, модалка, таблицы — готовые шаблоны
• Автоматический рендер Markdown и подсветка кода
• Темы с выбором цветовой схемы, поддержкой light/dark режимов
🚀 Пример компонента
Всё чисто, семантично, без CSS-уродства и классов.
🔧 Старт
✅ Преимущества:
• Быстрый старт с современным UI
• Чистый, читаемый Python-код
• Гибкость в кастомизации через Tailwind
• Подтверждённая пригодность в продакшене
🔗 Подробнее: https://www.answer.ai/posts/2025/01/15/monsterui.html
@pythonl
#Python #WebDev #FastHTML #MonsterUI #Tailwind #HTMX #UI #OpenSource
MonsterUI — это высокоуровневый слой поверх FastHTML, который позволяет быстро создавать красивые веб-интерфейсы на чистом Python без писанины HTML/CSS.
⚙️ Проблема
FastHTML и так упрощает фронтенд, но стильность UI требует громоздких классов или CSS-фреймворков (Tailwind, Bootstrap).
MonsterUI решает это, предоставляя готовые компоненты и умные настройки по умолчанию.
✨ Главные возможности
• Полюбившиеся Tailwind/FrankenUI/DaisyUI скрылки под капотом
• Удобные базовые компоненты:
Button
, Card
, LabelInput
и др. • Семантический текст и стили (H1, P, Blockquote, etc.), оформленные по умолчанию
• Умные layout-хелперы:
DivVStacked
, Grid
, DivFullySpaced
и другие • «Высокоуровневые» компоненты: навбар, модалка, таблицы — готовые шаблоны
• Автоматический рендер Markdown и подсветка кода
• Темы с выбором цветовой схемы, поддержкой light/dark режимов
🚀 Пример компонента
def TeamCard(name, role, location="Remote"):
icons = ("mail", "linkedin", "github")
return Card(
DivLAligned(
DiceBearAvatar(name, h=24, w=24),
Div(H3(name), P(role))),
footer=DivFullySpaced(
DivHStacked(UkIcon("map-pin", height=16), P(location)),
DivHStacked(*(UkIconLink(icon, height=16) for icon in icons))))
Всё чисто, семантично, без CSS-уродства и классов.
🔧 Старт
pip install MonsterUI
from fasthtml.common import *
from monsterui.all import *
app, rt = fast_app(hdrs=Theme.blue.headers())
@rt
def index():
return Card(H1("Hello MonsterUI"), P("Приложение готово!"))
serve()
✅ Преимущества:
• Быстрый старт с современным UI
• Чистый, читаемый Python-код
• Гибкость в кастомизации через Tailwind
• Подтверждённая пригодность в продакшене
🔗 Подробнее: https://www.answer.ai/posts/2025/01/15/monsterui.html
@pythonl
#Python #WebDev #FastHTML #MonsterUI #Tailwind #HTMX #UI #OpenSource
❤13👍8🔥4😁3🤩1
Хочешь не просто пописать код, а взорвать мозг? Вот 5 уникальных идей, которые объединяют ИИ, терминальные интерфейсы, сетевое взаимодействие и системное программирование. Каждый проект можно собрать за 1–2 дня, если знаешь, с какой стороны подойти.
🧠 1. Self-Healing CLI‑агент (автоматический отладчик ошибок)
🔹 Идея: Напиши CLI-инструмент, который анализирует ошибки в Python‑скриптах и предлагает (или вносит) правки к коду автоматически с помощью LLM.
🔧 Как реализовать:
• Используй
subprocess
для запуска целевого скрипта и перехвата stderr • Извлеки traceback → отправь в OpenAI / LM Studio через API
• Получи фикс → распарси результат и применяй его к AST с помощью
RedBaron
или ast
• Верифицируй: перезапусти код и проверь, исчезла ли ошибка
• Добавь флаг
--auto-fix
и интерактивный режим🧩 Применение: автопомощник в CI/CD, дебагер в редакторах, обучающий инструмент
📡 2. P2P-блокнот с mesh-синхронизацией
🔹 Идея: Заметки, которые синхронизируются без облака — через локальную сеть или Bluetooth, используя ZeroConf.
🔧 Как реализовать:
•
zeroconf
для автоматического обнаружения других устройств •
sqlite
как локальное хранилище + watchdog
для отслеживания изменений •
pynacl
для шифрования трафика • Используй TCP/UDP сокеты для передачи изменений
• Можно добавить визуальный CLI с
urwid
или textual
🧩 Применение: приватные P2P‑заметки, оффлайн-заметки в экспедициях, лайтовый knowledge base
🧬 3. AI‑отладчик чужого репозитория
🔹 Идея: Инструмент, который загружает чужой репозиторий, строит граф зависимостей и автоматически находит баги, недочёты, недокументированный код — и объясняет их.
🔧 Как реализовать:
•
gitpython
для клонирования проекта •
networkx
или pydeps
для визуализации модульной структуры •
mypy
, flake8
, pylint
и bandit
для анализа • Сводка отправляется в LLM (например, OpenAI API) для пояснений: "вот потенциально уязвимый участок, вот почему"
• Визуализируй через
rich
, graphviz
, или в браузере через streamlit
🧩 Применение: ревью чужого кода, onboarding новых участников в open-source
🎮 4. CLI-игра с live‑физикой прямо в терминале
🔹 Идея: Реализуй рогалик или простую 2D-игру с настоящей физикой (гравитацией, столкновениями) в терминале.
🔧 Как реализовать:
•
curses
или blessed
для отрисовки •
pymunk
или box2d
для физики (адаптируй под 2D-сцену) • Все объекты — текстовые символы
• События обрабатываются через
asyncio
, и всё должно работать в real‑time • Можно добавить оружие, отскоки, ловушки и интерактивные зоны
🧩 Применение: визуальное развлечение, обучение физике, красивое демо для хакатона
🕵️ 5. AI-инспектор Linux-системы
🔹 Идея: Создай скрипт, который в реальном времени следит за файлами, сетями, процессами, и при странной активности — показывает, почему это может быть подозрительно (с пояснением от ИИ).
🔧 Как реализовать:
• Используй
psutil
, inotify
, socket
, netifaces
• Собирай метрики: кто пишет в
/tmp
, кто открывает нестандартные порты, кто занимает слишком много CPU • Фильтруй необычные события → формируй контекст → передавай в LLM
• ИИ объясняет: "этот процесс пытается слушать порт 4444 в фоне — это может быть реверс‑шелл"
• CLI-интерфейс через
rich
или textual
🧩 Применение: оффлайн-альтернатива Falcon / CrowdStrike, полезный тул
💡 Всё это можно собрать за 1–2 дня, если уже умеешь работать с Python-инструментами, API и системными вызовами. И каждый проект можно расширять в полноценный open-source продукт.
@pythonl
#python #weekendprojects #ai #cli #sysadmin #funprojects #hackathon #opensource
Please open Telegram to view this post
VIEW IN TELEGRAM
❤21👍5🔥5
Forwarded from Machinelearning
This media is not supported in your browser
VIEW IN TELEGRAM
NVIDIA показала, как ускорить его в 40 раз — без переписывания кода.
Команда NVIDIA провела эксперимент с 18 миллионами строк данных с фондовых рынков: они выполнили типичный анализ данных с помощью pandas на CPU, а затем тоже самое — на GPU, используя
cudf.pandas
.Для примеры были взяты:
🧊 В общей сложности ~18M строк
Результат впечатляет : удалось добиться**ускорения обработки данных в 20–40 раз
Код скрипта не менялся вообще — тот же pandas, но на GPU.
Это один из примеров, где ускорение достигается без переписывания логики кода.
@ai_machinelearning_big_data
#datasckience #ml #nvidia #gpu #pandas #python
Please open Telegram to view this post
VIEW IN TELEGRAM
❤25👍7🔥5
This media is not supported in your browser
VIEW IN TELEGRAM
Если вы хотите отсортировать список объектов (например, словарей или кортежей) сразу по нескольким критериям — например, сначала по возрасту по возрастанию, а затем по имени по убыванию — не нужно писать громоздкие функции.
Используйте
sorted()
с key
, комбинируя несколько полей с нужной логикой сортировки. Вот как:
people = [
{"name": "Alice", "age": 30},
{"name": "Bob", "age": 25},
{"name": "Charlie", "age": 25},
{"name": "David", "age": 30},
]
# Сортировка: сначала по age (по возрастанию), затем по name (по убыванию)
sorted_people = sorted(people, key=lambda p: (p["age"], -ord(p["name"][0])))
for person in sorted_people:
print(person)
💡 Работает и с объектами, и с кортежами — главное, правильно составить
key
. Особенно полезно для фильтрации списков в табличных данных, при выводе результатов или генерации отчётов.#python
Больше коротких уроков тут
@pythonl
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥27👍7❤6😢2
Transfunctions — это инструмент для создания чистых, переиспользуемых и управляемых пайплайнов из функций. Подходит для задач, где нужно чётко контролировать каждый шаг выполнения.
Что такое транзакционные функции?
Это функции, которые:
• имеют чёткое начало и откат (rollback) — как в базах данных
• могут быть объединены в цепочки, где каждая часть знает, как отменить свои действия
• обрабатывают ошибки и контекст централизованно
• позволяют писать бизнес-логику без дублирования и хаоса
Что умеет Transfunctions:
• Объединение функций в контролируемые пайплайны
• Поддержка отката и логирования
• Контекстное выполнение (например, сессии, транзакции, данные)
• Минимум шаблонного кода
Подходит для ETL, финансовых операций, инфраструктурных обработчиков и сценариев с проверками и откатами.
pip install transfunctions
🔗 GitHub: https://github.com/pomponchik/transfunctions
#python #pipeline #transactions #opensource #architecture
@pythonl
Please open Telegram to view this post
VIEW IN TELEGRAM
❤10👍4🔥3😁1🤩1
🚀 Kreuzberg — мощный фреймворк Document Intelligence для Python!
🔹 Извлекает текст, метаданные и структурированные данные из PDF, Office-документов, изображений и др.
🔹 Основан на проверенных open-source решениях: Pandoc, PDFium, Tesseract
🔹 Поддержка 18 форматов (PDF, DOCX, PPTX, HTML, изображения, таблицы и пр.)
🔹 Высокая производительность: 30+ документов/с, лёгкий runtime (≈360 МБ), установка 71 МБ
🔹 Открытый исходный код под MIT-лицензией, 2 000⭐ на GitHub
GitHub
Пример:
✨ Попробуйте: https://github.com/Goldziher/kreuzberg
@pythonl
#Python #OCR #DocumentIntelligence #OpenSource #Kreuzberg
🔹 Извлекает текст, метаданные и структурированные данные из PDF, Office-документов, изображений и др.
🔹 Основан на проверенных open-source решениях: Pandoc, PDFium, Tesseract
🔹 Поддержка 18 форматов (PDF, DOCX, PPTX, HTML, изображения, таблицы и пр.)
🔹 Высокая производительность: 30+ документов/с, лёгкий runtime (≈360 МБ), установка 71 МБ
🔹 Открытый исходный код под MIT-лицензией, 2 000⭐ на GitHub
GitHub
Пример:
from kreuzberg import extract_file
# In your async function
result = await extract_file("presentation.pptx")
print(result.content)
# Rich metadata extraction
print(f"Title: {result.metadata.title}")
print(f"Author: {result.metadata.author}")
print(f"Page count: {result.metadata.page_count}")
print(f"Created: {result.metadata.created_at}")
✨ Попробуйте: https://github.com/Goldziher/kreuzberg
@pythonl
#Python #OCR #DocumentIntelligence #OpenSource #Kreuzberg
🔥13❤5👍4
Django 5.2.5 (релиз — 6 августа 2025)
- Тип релиза: патч-релиз, устраняющий ошибки версии 5.2.4.
- Ключевые исправления:
- Восстановлена поддержка стратегии
UNNEST
в QuerySet.bulk_create()
для PostgreSQL.- Улучшена фильтрация по составному первичному ключу через tuple-выражения.
- Исправлены ошибки валидации модели при использовании
GeneratedField
, Q
и Case
.- Добавлена совместимость с
docutils
версии 0.22.- Исправлен сбой при использовании
ManyToManyField
с составным первичным ключом — обновлены проверки fields.E347
.Python 3.13.6 (релиз — 6 августа 2025)
- Тип релиза: шестой maintenance-релиз ветки 3.13, включает около 200 исправлений, улучшений сборки и обновлений документации.
- Ключевые особенности Python 3.13 по сравнению с 3.12:
- Новый усовершенствованный REPL с многострочным редактированием, цветным выводом и цветными трассировками ошибок.
- Экспериментальный free-threaded build mode (отключение GIL), доступен в виде
python3.13t`/`python3.13t.exe
.- Встроенный экспериментальный JIT-компилятор (по-умолчанию отключён).
-
locals()
теперь имеет определённые семантики при мутации возвращаемого словаря.- Включена изменённая версия
mimalloc
(по-умолчанию, если доступно), обязательна для free-threaded режима.- Докстринги теперь очищаются от начальной отступной, что снижает объём `.pyc`-файлов.
- Новый бэкенд
dbm.sqlite3
используется по умолчанию при создании файлов.- Минимальная поддерживаемая версия macOS повысилась до 10.13 (High Sierra).
- Безопасность:
- Исправлена проблема, при которой фильтры
filter="data"
и filter="tar"
в tarfile
можно было обойти с помощью специально созданных сим- и жёстких ссылок.Вывод:
- Django 5.2.5 — важный патч-релиз LTS-ветки, рекомендован для обновления производственных систем.
- Python 3.13.6 — очередной maintenance-релиз с множеством багфиксов и улучшений, особенно интересен разработчикам, работающим с производительностью (REPL, JIT, free-threaded).
Если нужно, могу подсказать, как безопасно обновиться или протестировать эти версии в вашем проекте.
@pythonl
Please open Telegram to view this post
VIEW IN TELEGRAM
Django Project
Django 5.2.5 release notes | Django documentation
The web framework for perfectionists with deadlines.
🔥8❤4👍4😁4