PYTHONOMANIA
273 subscribers
195 photos
3 videos
1 file
616 links
Откройте для себя мир Python в PYTHONOMANIA!

Идеально подходит как для начинающих, так и для опытных разработчиков. Присоединяйтесь к нам, чтобы достичь совершенства в Python!

Сайт: https://pythonomania.github.io/
Download Telegram
📱PyPI Stats.

PyPI Stats —
это лаконичный и удобный аналитический дашборд для отслеживания статистики скачиваний пакетов из репозитория PyPI (Python Package Index).

Если вы разрабатываете библиотеки на Python и хотите точно знать, как часто их скачивают (и в какую сторону движется тренд), этот инструмент на базе Flask и plotly.js наглядно визуализирует всю динамику.

🔹Основные возможности проекта:

🔘Интеграция с GitHub OAuth: Позволяет быстро связать ваш профиль и отслеживать данные по установкам именно тех пакетов, мейнтейнером которых вы являетесь. Вся статистика доступна на кастомной пользовательской странице.

🔘Удобный JSON API: Предоставляет простой программный интерфейс для получения агрегированных данных и полной истории скачиваний во времени. Отлично подходит, если вы хотите вытянуть статистику в свои скрипты или дашборды.

🛠Для разработчиков (локальный запуск):

Проект поставляется с готовой докер-оберткой, так что развернуть его для кастомизации можно буквально в пару команд:

cp .env.example .env
# Отредактируйте .env под вашу конфигурацию

make pypistats


Команда make pypistats автоматически запустит полноценное окружение для разработки с помощью docker-compose.

#Python #PyPI #Flask #Plotly #Dashboard #Analytics #DevTools #OpenSource #Docker

📱Ссылка на репозиторий:
https://github.com/psf/pypistats.org
Please open Telegram to view this post
VIEW IN TELEGRAM
3🔥3⚡2👍1
📱PyTrendy.

PyTrendy —
это надежное решение для поиска и анализа трендов во временных рядах.

В отличие от большинства других библиотек для тренд-детекшена, PyTrendy устойчива к сильному шуму и плоским («флэт») участкам данных. Она с высокой точностью определяет как плавные (gradual), так и резкие (abrupt) изменения графиков, претендуя на звание лучшего пакета для поиска трендов на Python.

🔹Основные возможности:

🔘Устойчивость к шуму: Отлично фильтрует случайные колебания, не ломая общую картину.

🔘Распознавание боковиков: Четко отделяет реальное движение вверх или вниз от горизонтального коридора (Flat).

🔘Высокая точность: Одинаково хорошо ловит как затяжные плавные тренды, так и внезапные скачки.

🔘Визуализация: Автоматически строит наглядные графики с выделенными зонами трендов.

🚀Быстрый старт:

pip install pytrendy


В коде инструмент используется буквально в несколько строк:

import pytrendy as pt

# Загружаем тестовые данные
df = pt.load_data('series_synthetic')

# Запускаем поиск трендов
results = pt.detect_trends(df, date_col='date', value_col='gradual', plot=True)
results.print_summary()


В консоли вы получите структурированный и понятный отчет:

Detected: - 3 Uptrends. - 3 Downtrends. - 3 Flats. - 0 Noise.

The best detected trend is Down between dates 2025-05-09 - 2025-06-17


Помимо краткой сводки, библиотека возвращает подробный датафрейм, где для каждого найденного участка указаны направление (Up/Down/Flat), даты начала и конца, длительность в днях, общее изменение значения (total_change) и класс тренда.

#Python #TimeSeries #DataScience #Analytics #PyTrendy #DataEngineering #OpenSource #MachineLearning #АнализДанных

📱Ссылка на репозиторий:
https://github.com/RussellSB/pytrendy
Please open Telegram to view this post
VIEW IN TELEGRAM
5⚡4👍3
PyRSSNews.

Python 3.14.6 и 3.13.14 теперь доступны!

📅 Дата: Wed, 10 Jun 2026 00:00:00 GMT

Читать далее...
1🔥4👍1
📱Python UUID Utils.

Python UUID Utils —
это сверхбыстрая замена стандартного модуля uuid в Python, написанная на Rust. Инструмент разработан как полноценная альтернатива (drop-in replacement): вы можете кратно ускорить генерацию уникальных идентификаторов в вашем приложении без кардинального переписывания кодовой базы.

🔹Доступные версии UUID:

🔘uuid1 / uuid6 — на основе временной метки и монотонного счетчика.

🔘uuid3 / uuid5 — на основе хэшей MD5 и SHA-1 от переданных данных.

🔘uuid4 — классический UUID на базе случайных данных.

🔘uuid7 — современный стандарт на основе Unix-времени, идеально подходящий для первичных ключей в базах данных благодаря сортировке по времени создания.

🔘uuid8 — кастомные UUID на основе пользовательских данных.

🚀Потрясающая производительность (Бенчмарки):

Согласно официальным тестам на Python 3.14, ускорение получается просто космическим:

🔘uuid4(): Стандартная библиотека — 1189 нс | uuid_utils — всего 61 нс (быстрее почти в 20 раз!).

🔘uuid7(): Стандартная библиотека — 1336 нс | uuid_utils — 84 нс (быстрее в 15 раз!).

🔘Парсинг идентификатора из строк (hex) или байтов работает быстрее в 4–5 раз.

🔧Совместимость с Django и другими фреймворками:

Некоторые крупные фреймворки строго требуют, чтобы объекты UUID были именно инстансами стандартного класса uuid.UUID из встроенной библиотеки Python, а не сторонними сабклассами. Разработчики это учли! Для таких случаев есть специальный модуль совместимости:

import uuid_utils.compat as uuid

# Возвращает родной объект stdlib uuid.UUID,
# но генерирует его в 4-5 раз быстрее стандартного модуля!
my_id = uuid.uuid4()


📦Установка:

pip install uuid-utils
# или через conda
conda install -c conda-forge uuid-utils


#Python #Rust #Performance #UUID #Backend #Django #DevTools #Programming #OpenSource #Оптимизация

📱Ссылка на репозиторий:
https://github.com/aminalaee/uuid-utils
Please open Telegram to view this post
VIEW IN TELEGRAM
3⚡2👍22
📱NumCircBuf.

NumCircBuf —
это высокопроизводительная библиотека для Python (реализованная на Cython), предоставляющая численные циклические буферы (circular buffers) со статистическими аккумуляторами, работающими за константное время O(1).

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

🔹Главные фичи и преимущества:

🔘Бешеная производительность: За счет обхода стандартного оверхеда Python/NumPy библиотека работает в 500–1500 раз быстрее, чем collections.deque или обычные списки при массовом добавлении данных (extend), и до 10 раз быстрее кольцевых буферов на чистом NumPy. Тесты показывают пропускную способность до 73 ГБ/с!

🔘Статистика за O(1): Специализированные буферы мгновенно выдают скользящее среднее или среднеквадратичное значение без необходимости каждый раз пересчитывать все элементы в окне.

🔘Zero-Copy представления: Метод .view() возвращает логическое read-only представление буфера без копирования данных в памяти. Оно ведет себя в коде точно так же, как стандартный одномерный NumPy-массив.

🔘Строгая типизация и безопасность: Полная поддержка типов данных fp32, fp64, int32, int64, uint32 и uint64. Привычный API с методами append, extend и clear позволяет внедрить библиотеку как drop-in замену.

🛠Основные типы буферов в комплекте:

🔘OverwriteCircBuffer — оптимизирован для сценариев с высокой интенсивностью записи, где старые данные автоматически заменяются новыми.

🔘BlockingCircBuffer — потокобезопасный блокирующий буфер для многопоточных приложений (паттерн Producer/Consumer). Писатель засыпает, если буфер полон, а читатель ждет, если в буфере пусто.

🔘RunningMeanBuffer и RunningMeanSqBuffer — утилиты со встроенным O(1) расчетом среднего и среднеквадратичного значений с защитой от накопления погрешности округления (floating-point drift).

🔘IntegratedGatedBuffer — узкоспециализированный буфер для расчета интегральной стробированной громкости звука (по международному стандарту ITU-R BS.1770).

📦Установка:

pip install numcircbuf


#Python #Cython #NumPy #DataScience #SignalProcessing #TimeSeries #Performance #DevTools #OpenSource #Оптимизация

📱Ссылка на репозиторий:
https://github.com/basimali-ai/NumCircBuf
Please open Telegram to view this post
VIEW IN TELEGRAM
13👍11
📱Tracesage.

Tracesage —
это легковесный инструмент локального мониторинга и визуализации мультиагентных систем, построенных на базе LangChain и LangGraph.

Достаточно добавить всего пару строк кода, чтобы запустить интерактивный трейсинг выполнения ИИ-агентов в реальном времени прямо в браузере. Инструмент перехватывает весь поток колбэков LangChain (запуски цепочек, вызовы инструментов, LLM-запросы, ретривал, ошибки) и наглядно раскладывает его по полочкам.

🔹Главные преимущества:

🔘Нулевая инфраструктура: Никакого Docker, Postgres или сторонних облачных сервисов. Только чистый pip install. Все данные сохраняются локально в SQLite, а веб-интерфейс работает полностью оффлайн.

🔘Интеграция в две строки: Вам не нужно менять логику работы ваших агентов. Просто добавьте колбэк-хэндлер в ваш метод ainvoke.

🔘Интерактивный граф (UI): Кастомный легковесный SVG-граф автоматически строит топологию вызовов. Вы можете кликать на любой шаг, изучать промпты, логи ответов, токены, задержки и ошибки.

🔘Поддержка MCP (Model Context Protocol): Утилита автоматически определяет, из каких именно MCP-серверов были подгружены инструменты, визуализируя их происхождение.

🔘Мост в продакшн (OpenTelemetry): Локальные трейсы можно легко экспортировать в виде OTel-спанов в ваши корпоративные системы мониторинга (Grafana Tempo, Jaeger, Datadog, Honeycomb).

🔘Безопасность (Crash-safe): Локальный обработчик изолирован и никогда не вызовет падение основного конвейера вашего приложения при сбоях.

🚀Быстрый старт:

Установка (для zsh обязательно берите в кавычки):

pip install "tracesage[langchain]"


Использование в синхронных скриптах или Jupyter-ноутбуках для автоматического глобального перехвата:

import tracesage

with tracesage.trace() as tl:
# Трейсится автоматически, в консоль выводится кликабельная ссылка
result = agent.invoke("Создай план поездки")
input("Трейс готов — откройте ссылку в консоли и нажмите Enter для выхода.")


По умолчанию интерфейс поднимается на http://localhost:7842/ui.

🛠Инструменты разработчика (CLI и Тестирование):

tracesage предлагает мощные команды для отладки прямо из терминала:

🔘tracesage show <run_id> — отрисовать структуру выполнения в виде дерева в консоли.

🔘tracesage watch <run_id> — стриминг событий в реальном времени.

🔘tracesage diff <run_a> <run_b> — сравнение двух запусков по токенам, времени и ошибкам.

Также инструмент автоматически регистрирует фикстуру tracesage_capture для pytest, позволяя писать интеграционные тесты на поведение ИИ-агентов (например, проверять, вызывался ли конкретный инструмент и не превышен ли лимит токенов).

#Python #LangChain #LangGraph #AI #MultiAgent #Observability #DevTools #OpenSource #LLM

📱Ссылка на репозиторий:
https://github.com/kjgpta/tracesage
Please open Telegram to view this post
VIEW IN TELEGRAM
3🔥3⚡2👍1
📱Symbolica.

Symbolica -
это высокопроизводительная библиотека компьютерной алгебры для Python и Rust. Она спроектирована специально для работы с огромными математическими выражениями, символьных преобразований (symbolic rewrites), точной полиномиальной арифметики и оптимизированных численных вычислений.

Этому инструменту доверяют ученые из CERN, а также ведущие исследовательские группы из ETH Zurich, Университета Цюриха, Университета Берна и Технологического института Карлсруэ.

❓Почему Symbolica:

🔘Единое ядро: Нативные API для Python и Rust, работающие на одном и том же сверхбыстром символьном движке.

🔘Максимальное ускорение: Оптимизированные численные вычислители с генерацией кода на лету (JIT), поддержкой C++, SIMD, ASM и вычислений на GPU через CUDA.

🔘Работа с Big Data в математике: Встроенные инструменты потоковой передачи данных (streaming) для выражений, которые слишком велики, чтобы целиком поместиться в оперативной памяти.

🔘Гибкая логика: Сопоставление с образцом (pattern matching) и перезапись для адаптации алгебры под конкретные доменные задачи.

🔘Смешанные вычисления: Поддержка комбинации точных и численных расчетов с автоматическим отслеживанием погрешности.

🔻Пример использования (калибровка маятника):

Библиотека позволяет изящно совмещать символьные манипуляции, разложение в ряды и финальный численный расчет:

from symbolica import *

θ, κ = S("θ", "κ")
V = κ * (1 - θ.cos())
τ = -V.derivative(θ) # Символьное дифференцирование: −κ*sin(θ)

# Разложение крутящего момента в ряд для модели малых углов
# Результат: −κθ + 1/6*κθ³ + O(θ⁴)
τ_small = τ.series(θ, 0, 3)

# Подстановка точек измерений, автоматическое решение
# параметрической линейной системы и вывод численного результата...


📦Установка:

pip install symbolica

#Symbolica #Python #Rust #Math #ComputerAlgebra #CERN #DataScience #Physics #CUDA #DevTools #OpenSource

📱Ссылка на репозиторий:
https://github.com/symbolica-dev/symbolica
Please open Telegram to view this post
VIEW IN TELEGRAM
14👍3
📱ASN counter.

ASN counter —
это утилита на Python для подсчета количества хитов (HTTP-запросов, пакетов и т.д.) по номерам автономных систем (ASN) и связанным с ними сетевым блокам.

Инструмент незаменим, когда ваш сервер заваливает трафиком (например, при DDoS-атаках или агрессивном парсинге) и нужно мгновенно вычислить «виновную» сеть, чтобы заблокировать её целиком или отправить жалобу провайдеру (abuse complaint). Также утилиту используют на магистральных роутерах для анализа трафика, чтобы понять, с какими сетями выгодно заключить пиринговые соглашения.

🔹Главные возможности:

🔘Гибкий сбор данных: Читает пакеты построчно из текстового файла или stdin, умеет парсить вывод tcpdump или перехватывать трафик напрямую с сетевых интерфейсов через scapy.

🔘Глубокая статистика: Считает не просто хиты, а количество пакетов, их размер, задержки (latency) и другие метрики в разрезе конкретных ASN и подсетей.

🔘Быстрый поиск и автоматизация: Использует библиотеку pyasn для молниеносного лукапа и автоматически скачивает актуальные базы данных маршрутов с routeviews.org.

🔘Интеграция с мониторингом: Из коробки доступен встроенный экспортёр метрик для Prometheus.

🔘Интерактивный анализ: Есть опциональная REPL-оболочка (Python-консоль), позволяющая «на лету» проваливаться в отчеты и агрегировать сетевые блоки прямо во время работы.

📦Установка:

pip install asncounter


(Примечание: при установке через pip стандартная man-страница справки не собирается, так как она требует наличия pandoc в системе. Полная версия мануала со всеми зависимостями корректно собирается и поставляется в официальном Debian-пакете).


🧩Зависимости:

🔘Основная: pyasn.

🔘Опциональные: prometheus_client (для экспорта метрик), scapy (для прямого перехвата пакетов без tcpdump), netaddr (для агрегации подсетей в REPL) и manhole (для создания отладочного сокета).

#Python #Networking #SysAdmin #DDoS #Prometheus #DevTools #TrafficAnalysis #Security #OpenSource

📱Ссылка на репозиторий:
https://gitlab.com/anarcat/asncounter/
Please open Telegram to view this post
VIEW IN TELEGRAM
3👍4⚡3
📱Hydra.

Hydra —
это мощный фреймворк для гибкого и элегантного управления конфигурациями сложных приложений.

Если вы работаете в сфере Machine Learning или Deep Learning, вы наверняка сталкивались с кошмаром разрастающихся конфигурационных файлов. Hydra решает эту проблему, позволяя динамически собирать итоговый конфиг из мелких независимых кусочков (композиция) и переопределять любые параметры на лету прямо из командной строки, вообще не трогая код.

🔹Главные фишки и экосистема:

🔘Динамическая композиция: Настройки можно разбивать на логические группы (датасеты, модели, оптимизаторы) и комбинировать их в один клик.

🔘Удобный CLI: Переопределяйте любые глубоко вложенные параметры при запуске скрипта прямо через консоль (например, model.lr=0.001).

🔘Развитая экосистема плагинов:

🔤hydra-zen — генерация динамических конфигураций в чистом Python-стиле.

🔤lightning-hydra-template — готовый и очень популярный шаблон для ML-экспериментов на базе PyTorch Lightning.

🔤hydra-torch — типобезопасные конфигурационные классы для PyTorch.

🔤Плагин распределенного запуска от NVIDIA для масштабного обучения нейросетей.

📦Установка:

🔘Стабильная ветка (Hydra 1.3):

pip install hydra-core --upgrade


🔘Свежая dev-версия (Hydra 1.4 с поддержкой Python 3.10–3.14):

pip install --pre --upgrade hydra-core


✅Фреймворк распространяется под свободной лицензией MIT.

#Python #MachineLearning #DeepLearning #Hydra #PyTorch #DevTools #MLOps #OpenSource

📱Ссылка на репозиторий:
https://github.com/facebookresearch/hydra
Please open Telegram to view this post
VIEW IN TELEGRAM
1⚡2👍21
📱Gzipt.

Gzipt —
это текстовый генератор, который работает вообще без нейросетей и ИИ. Его единственная «языковая модель» — обычный архиватор gzip.

Идея проста и гениальна: с точки зрения теории информации, то, что лучше всего сжимается, математически является наиболее вероятным продолжением текста. Вы даете утилите базовый текст (корпус) и промпт, а она подбирает байты, которые дают максимальную степень сжатия архиватором.

🔹Параметры управления этим «не-ИИ»:

🔘 --corpus — файл с контекстом, которым «прогревается» скользящее окно сжатия.

🔘 --window — размер окна корпуса, показываемый gzip (не более 32 768 байт из-за ограничений zlib).

🔘 --horizon и --beam-width — глубина просмотра вперед и количество лучших ветвей продолжения текста, которые утилита держит в памяти на каждом шаге (классический лучевой поиск / Beam Search).

🔘 --temperature — как и в больших LLM, регулирует случайность выбора следующих байт.

🔘 --tail — объем уже сгенерированного текста, который учитывается при подсчете очков (защита от тупого копирования корпуса).

🔘 --workers — количество потоков. Так как библиотека zlib в Python честно отпускает GIL, вычисления отлично параллелятся на процессоре.

🔻Пример использования из источника:

Скармливаем утилите файлик с пьесами Шекспира в качестве базы и просим продолжить реплику персонажа:

gzipt --corpus data/tinyshakespeare.txt --prompt $'MENENIUS:\n' --length 200


Результат генерации:


MENENIUS:
'Though all at once canq

MARCIUS:
Pray now, nocamest thou to a morsel .

LARTIUS:
Hence, and
I' the end admire, where G
again; and after it ag .

LARTIUS:
Hence, and
I' the end ad

LARTIUS:
fame and


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

#Python #Gzip #LanguageModel #InformationTheory #NLP #Zlib #DevTools #OpenSource #GeekHumor

📱Ссылка на репозиторий:
https://github.com/nathan-barry/gzipt
Please open Telegram to view this post
VIEW IN TELEGRAM
1👍22🔥1
📱Winpodx.

Winpodx
— это инструмент, который позволяет запускать любые Windows-программы на Linux так, будто это родные Linux-приложения.

Забудьте про тяжелые и неудобные виртуальные машины, которые открывают огромный рабочий стол Windows внутри Linux. С Winpodx вы просто кликаете по иконке в меню, и нужный вам условный Microsoft Word или Photoshop открывается в обычном, аккуратном окошке прямо на вашем рабочем столе Linux.

🔹Почему это удобно:

🔘Всё как родное: У программ свои реальные иконки в меню и на панели задач, они без проблем переключаются через Alt-Tab и закрепляются там, где вам удобно.

🔘Общие файлы: Полная интеграция. Можно дважды кликнуть по документу .docx в файловом менеджере Linux, и он сразу откроется в Windows-версии Word.

🔘Обман системы: Некоторые программы и инсталляторы «капризничают» и отказываются работать внутри виртуальных машин. Winpodx умеет искусно притворяться реальным физическим компьютером, обходя эти запреты.

🔘Полная синхронизация: Общий буфер обмена (можно копировать текст и картинки туда-сюда), общие принтеры, автоматическое подключение флешек и поддержка звука работают из коробки.

📦Как это устроено внутри:

Вся магия автоматизации написана на Python с графическим интерфейсом на Qt6. Именно Python выступает в роли «клея» и главного диспетчера: он полностью управляет фоновым Windows-контейнером (Docker/Podman), настраивает трансляцию окон через FreeRDP, налету вытаскивает ярлыки из гостевой системы и связывает файлы между двумя ОС без какой-либо ручной настройки со стороны пользователя.

Установка запускается одной строкой в терминале (главное, чтобы в BIOS вашего ПК была включена виртуализация):

curl -fsSL https://raw.githubusercontent.com/kernalix7/winpodx/main/install.sh | bash


#WinPodX #Linux #Windows #Virtualization #Docker #Podman #DevTools #OpenSource #Лайфхак #Администрирование

📱Ссылка на репозиторий:
https://github.com/kernalix7/winpodx
Please open Telegram to view this post
VIEW IN TELEGRAM
3👍2🔥21
📱Optocam Zero.

Optocam Zero
— это компактная цифровая камера на базе Raspberry Pi Zero, которую можно собрать своими руками из доступных коммерческих компонентов.

Автор проекта вдохновлялся эстетикой старых мыльниц Kodak и игрушечных фотоаппаратов, поэтому гаджет получился фановым, интуитивным и очень легким. Корпус полностью печатается на 3D-принтере, а всю электронную начинку можно без труда найти на маркетплейсах.

🔹Главные фишки устройства:

🔘Съемка и фоновое сохранение: Делает квадратные JPEG-снимки в разрешении 2592×2592px. Фото сохраняется в фоновом режиме, поэтому картинка на экране не замирает ни на секунду.

🔘Запись GIF: Камера умеет записывать и воспроизводить короткие GIF-анимации.

🔘Ретро-вайб: В прошивку встроено 8 фотофильтров для придания кадрам нужной атмосферы прямо на лету.

🔘Удобный сброс кадров: Камера создает собственную Wi-Fi точку доступа (хотспот) с кастомным интерфейсом, оптимизированным для смартфонов и ПК. Перекинуть фото можно за пару кликов без проводов.

🔘Питание и USB-C: Работает от заменяемого литий-ионного аккумулятора формата 14500 (хватает на 70–80 минут работы). Есть зарядка через современный USB-C, причем камерой можно пользоваться прямо во время питания от сети.

🔘Защита: Экран автоматически гаснет при бездействии для экономии энергии. Дополнительно можно напечатать защитный чехол из гибкого TPU-пластика и ремешок на запястье.

🔧Технические характеристики:

🔘Время загрузки: Оптимизировано до 14 секунд (в ранних версиях было 22 с).

🔘Экран: Простой, но яркий 1.4-дюймовый LCD-дисплей (240×240px).

🔘Плавность экрана: Стабильные 15–20 кадров в секунду в режиме превью.

🔘Размеры: Всего 51×71×18 мм (без учета выступа под камеру и экран) — гаджет легко помещается в любой карман.

❓Как собрать камеру самостоятельно:

В открытом репозитории проекта есть всё необходимое:

🔘Полный список деталей (BOM) с оценкой стоимости.

🔘Готовые файлы для 3D-печати (включая настроенные проекты для Bambu Studio под прозрачный PETG или PETG-CF с угловолокном).

🔘Пошаговый иллюстрированный PDF-гайд по сборке и пайке.

🔘Установщик софта и подробная инструкция по настройке системы.

🔘Отличный проект выходного дня для тех, кто любит электронику, 3D-печать и хочет получить уникальный девайс для фановых душевных снимков!

#RaspberryPi #DIY #3DPrinting #Hardware #Maker #OptocamZero #RetroCamera #OpenSource #Gadgets #Электроника

📱Ссылка на репозиторий:
https://github.com/dorukkumkumoglu/optocamzero
Please open Telegram to view this post
VIEW IN TELEGRAM
1👍3🔥22
📱Unlimited OCR.

Unlimited OCR —
это продвинутая ИИ-модель для распознавания текста и разбора документов от компании Baidu, открывающая эру комплексного «one-shot» парсинга длинных многостраничных документов (One-shot Long-horizon Parsing).

Проект развивает архитектуру Deepseek-OCR и предлагает мощное решение для перевода сканов, изображений и PDF-файлов в структурированный текстовый вид без потери контекста на стыке страниц.

🔹Главные фичи и возможности:

🔘Многостраничный парсинг «из коробки»: Модель нативно поддерживает обработку PDF и многостраничных документов с длиной контекста до 32 768 токенов. Она эффективно решает проблему зацикливания текста с помощью кастомных процессоров логитов (no_repeat_ngram_size).

🔘Два режима обработки изображений:

✔️base — стандартный режим для документов и многостраничных PDF (разрешение 1024x1024).

✔️gundam — продвинутый режим с умным кроппингом (640x640) для точечного извлечения данных со сложных картинок.

🔘Максимальная скорость инференса: Помимо стандартной библиотеки transformers, модель поддерживает интеграцию с ведущими движками высокопроизводительного ИИ-вывода — vLLM и SGLang (с поддержкой FlashAttention-3).

🔘Готовность к продакшну: Разработчики подготовили официальные Docker-образы под свежие версии CUDA (включая оптимизацию под архитектуру NVIDIA Hopper).

🔻Пример использования (Hugging Face Transformers):

Минимальный стек для запуска требует Python 3.12, CUDA 12.9+ и PyTorch 2.10.

import torch
from transformers import AutoModel, AutoTokenizer

model_name = 'baidu/Unlimited-OCR'
tokenizer = AutoTokenizer.from_pretrained(model_name, trust_remote_code=True)
model = AutoModel.from_pretrained(
model_name,
trust_remote_code=True,
torch_dtype=torch.bfloat16
).eval().cuda()

# Распознавание документа за один вызов
model.infer(
tokenizer,
prompt='<image>document parsing.',
image_file='scan.jpg',
output_path='./output',
crop_mode=True,
max_length=32768
)

Проект полностью открытый. Код, веса модели и научная статья уже доступны на Hugging Face, arXiv и ModelScope, а протестировать работу вживую можно в интерактивном демо на Hugging Face Spaces.


#Baidu #UnlimitedOCR #OCR #DeepseekOCR #vLLM #SGLang #ComputerVision #AI #OpenSource #Python

📱Ссылка на репозиторий:
https://github.com/baidu/Unlimited-OCR
Please open Telegram to view this post
VIEW IN TELEGRAM
1👍3🔥3
📱Pyappdist.

Pyappdist -
это инструмент для сборки нативных установщиков (инсталляторов) для Python-приложений, который раз и навсегда решает проблему бесконечного поиска скрытых импортов, потерянных файлов данных и неработающих плагинов.

Главное отличие pyappdist от классических «замораживателей» кода (вроде PyInstaller) заключается в том, что он не упаковывает приложение в один монолитный .exe-файл. Вместо этого инструмент собирает настоящий, чистый и изолированный Python-рантайм и устанавливает ваше приложение внутрь него точно так же, как это делает pip.

Благодаря такому подходу вам больше не нужно писать костыли, воевать со флагами --hidden-import или прописывать пути к ресурсам через --add-data. Если проект запускается локально через uv run, он гарантированно заработает и после сборки. Расширения на C (C extensions), бинарные пакеты (abi3 wheels), сложные плагины для Qt (PySide6) и интерфейсы на tkinter работают из коробки без каких-либо модификаций.

🔹Что умеет собирать утилита (из одного конфига):

🔘Windows: Официальные установщики .msi (пользовательские или системные) и пакеты .msix для Microsoft Store.

🔘macOS: Готовые образы .dmg и бандлы .app с полноценной поддержкой подписи кода и нотариализации (notarization).

🔘Linux: Самораспаковывающиеся .run-архивы и обычные .tar.gz (установка в один клик в пользовательскую директорию без root-прав).

🚀Быстрый старт через pyproject.toml:

Настройки лаунчеров и платформ сборки описываются прямо в конфигурационном файле вашего проекта:

[tool.pyappdist]
name = "My App"
python = "3.12"

[[tool.pyappdist.launchers]]
name = "myapp"
entry = "myapp:main"
gui = true # Использовать pythonw.exe (без консольного окна) на Windows
icon = "assets/app.ico"

[[tool.pyappdist.targets]]
name = "windows"
platform = "windows-x86_64"
format = "msi"
manufacturer = "Example Inc."


После этого достаточно добавить пакет в dev-зависимости и запустить сборку:

uv add --dev pyappdist
uv run pyappdist build windows-x86_64


Итоговый инсталлятор соберется автоматически и упакуется в папку appdist/windows/dist/.

⚠️На текущий момент проект находится в стадии Альфы, поэтому схема конфигурации и CLI могут незначительно меняться, однако весь пайплайн сборки уже полностью готов к использованию в связке с менеджером пакетов uv.

#Python #Packaging #PyAppDist #DevTools #Windows #MacOS #Linux #SoftwareDevelopment #OpenSource #Deployment

📱Ссылка на репозиторий:
https://github.com/atsuoishimoto/pyappdist
Please open Telegram to view this post
VIEW IN TELEGRAM
1🔥3👍2
📱Graphify.

Graphify
- это плагин для ИИ-ассистентов (Claude Code, Cursor, GitHub Copilot, Aider и др.), который мгновенно превращает весь ваш проект — код, документацию, PDF, изображения и видео — в интерактивный граф знаний (knowledge graph).

Вместо того чтобы прочесывать файлы через grep или скармливать нейросети тонны исходников, вы можете опрашивать структурированную базу данных вашего репозитория. Достаточно просто ввести в чате вашего ИИ-кодера: /graphify .

❓Что вы получаете на выходе:

После сканирования в проекте создается папка graphify-out/ с тремя файлами:

🔘graph.html — интерактивная визуализация для любого браузера. Можно кликать по узлам, искать скрытые связи и фильтровать компоненты.

🔘GRAPH_REPORT.md — выжимка главного: ключевые архитектурные концепты, неожиданные взаимосвязи между модулями и готовые подсказки для вопросов.

🔘graph.json — полная структура графа, к которой ИИ-ассистент обращается мгновенно без повторного перечитывания файлов.

🔹Главные фичи:

🔘Глубокая аналитика: Находит «God nodes» (центральные хабы проекта, через которые течет большая часть логики), скрытые зависимости и вытягивает из комментариев вроде # NOTE:, # WHY: или # HACK: контекст проектирования, связывая их с кодом.

🔘Поддержка 36+ языков: Локально извлекает синтаксическое дерево (AST) через tree-sitter. Этот этап работает полностью оффлайн и бесплатно. Нетекстовые файлы (медиа, PDF) анализируются через API модели вашего IDE-ассистента.

🔘Приватность на первом месте: Кодовая база обрабатывается на вашей машине. Архиватор также ведет детальный лог поисковых запросов локально в JSON Lines.

🔘Готовность к Git: Папку с графом можно коммитить в репозиторий, чтобы вся команда сразу получала карту проекта. Инструмент автоматически настраивает собственный git-драйвер слияния, чтобы у разработчиков при параллельной работе файлы graph.json объединялись без конфликтов.

🚀Быстрый старт:

Рекомендуется устанавливать через менеджер пакетов uv (обратите внимание, имя пакета на PyPI пишется с двойной «y» — graphifyy):

# Установка утилиты
uv tool install graphifyy

# Регистрация плагина в вашем ИИ-ассистенте
graphify install


🔻Полезные команды для терминала:

🔘graphify query "что связывает модуль авторизации с базой данных?" — точечный поиск по графу.

🔘graphify export callflow-html — генерация интерактивной архитектурной схемы на базе диаграмм Mermaid.

#Python #AI #KnowledgeGraph #DevTools #LLM #ClaudeCode #Cursor #Aider #OpenSource #SoftwareArchitecture

📱Ссылка на репозиторий:
https://github.com/safishamsi/graphify
Please open Telegram to view this post
VIEW IN TELEGRAM
1🔥4⚡3👍2
📱DriverScope.

DriverScope
- это автоматизированный конвейер (pipeline) для поиска уязвимых Windows-драйверов ядра и охоты за потенциальными векторами BYOVD-атак (Bring Your Own Vulnerable Driver).

Инструмент сканирует файлы .sys на наличие опасных системных примитивов, извлекает интерфейсы диспетчеризации IOCTL, сопоставляет их с известными базами данных (LOLDrivers, черный список Microsoft, KDU) и подсвечивает новые уязвимости нулевого дня (0-day), которых еще нет в публичных реестрах.

🔹Ключевые возможности и фичи:

🔘Анализ ядерных примитивов: Автоматически сопоставляет импорты драйвера с 18 категориями опасных операций, которые обожают использовать хакеры (например, прямой маппинг физической памяти MmMapIoSpace, чтение/запись MSR-регистров, обход колбэков или принудительное завершение процессов EDR-агентов).

🔘Безопасная эмуляция (Speakeasy): Трассирует функцию DriverEntry, вытаскивает имена устройств, пути к PDB-файлам и отладочные строки вообще без загрузки драйвера в систему, защищая исследовательский хост от BSOD.

🔘Извлечение и фаззинг IOCTL: Качественно вытягивает карту IOCTL-кодов (статически или через дизассемблер Capstone) и умеет автоматически генерировать готовые Python-скрипты для фаззинга через boofuzz.

🔘Региональный парсинг сайтов (Playwright): Встроенный модуль на базе браузерной автоматизации умеет обходить порталы 55 вендоров в 10 регионах (включая CN, KR, JP). Это позволяет собирать редкие подписанные драйверы утилит разгона, подсветки или телеметрии, которые азиатские и локальные OEM-производители выпускают без должного аудита безопасности.

🔘ИИ-сортировка отчетов (Triage): Позволяет скормить JSON-дампы сканирования в API моделей Claude для быстрого и автоматического вердикта по каждому найденному IOCTL-обработчику.

🚀Быстрый старт:

Для полноценной работы (включая эмуляцию, кластеризацию fuzzy-хэшей TLSH и парсинг сайтов) устанавливается одной командой:

pip install git+https://github.com/diabloidyobane/DriverScope.git
pip install driverscope[all]


Примеры использования в консоли:

# Быстрое сканирование системной папки с проверкой по базе LOLDrivers
driverscope scan C:\Windows\System32\drivers --lol --ioctl

# Полноценная глубокая охота за 0-day с экспортом результатов
driverscope hunt --deep --export findings.json

# Вытащить структуру IOCTL из подозрительного драйвера
driverscope ioctl suspicious.sys --json

⚠️Важное предупреждение: Любые манипуляции с DeviceIoControl и ring 0 при неверной структуре входных буферов гарантированно отправят операционную систему в синий экран (BSOD). Проводите все тесты исключительно в изолированных виртуальных машинах!


#DriverScope #BYOVD #Cybersecurity #ReverseEngineering #WindowsKernel #ExploitDev #Infosec #Python #LOLDrivers #KernelHacking

📱Ссылка на репозиторий:
https://github.com/diabloidyobane/DriverScope
Please open Telegram to view this post
VIEW IN TELEGRAM
1⚡32👍1
📱Kivo.

Kivo
— это легковесный десктопный телесуфлер (телепромптер), написанный на Python с использованием библиотеки PySide6.

Инструмент создает аккуратный оверлей поверх всех окон для комфортного чтения сценариев, подсказок от ИИ, слайдов презентаций или заметок во время записи видеороликов и онлайн-созвонов. На текущий момент проект находится на стадии рабочего MVP (v0.1.0).

🔹Основные возможности:

🔘Безрамочный интерфейс: Полупрозрачное окно с современными скругленными углами закрепляется поверх остальных приложений (always-on-top). Его можно свободно перетаскивать мышкой в любую точку экрана.

🔘Умный авторелоад: Kivo работает с обычными текстовыми файлами (.txt) и автоматически обновляет текст на экране, как только вы сохраняете изменения в исходном файле.

🔘Плавный автоскроллинг: Настоящая суфлерная прокрутка текста с возможностью тонкой настройки скорости, мгновенной паузы и возобновления.

🔘Фокус на главном: Максимально чистый интерфейс без лишних кнопок и меню для полной концентрации на чтении.

⌨️Горячие клавиши управления:

🔘Esc — Закрыть приложение.
🔘Пробел — Пауза / Старт прокрутки.
🔘↑ / ↓ — Увеличить / Уменьшить скорость скроллинга.

🛠Запуск и сборка проекта:

Развернуть проект локально можно стандартным для Python-разработчиков путем:

git clone https://github.com/rajtilakjee/kivo.git
cd kivo
pip install -r requirements.txt
python main.py


При необходимости приложение можно упаковать в один автономный исполняемый файл (бинарник) без зависимостей с помощью PyInstaller:

pyinstaller --onefile --windowed --name Kivo main.py


🔻Что планируется в будущем (Roadmap):

Полноценное окно конфигурации, глобальные хоткеи (работающие даже когда окно не в фокусе), кастомизация шрифтов и уровня прозрачности фона, пресеты скорости, зеркальный режим (Mirror mode) для использования с профессиональными стеклами-отражателями и готовые кроссплатформенные релизы.

#Python #PySide6 #Qt #Teleprompter #OpenSource #Productivity #DesktopApp #DevTools #VideoProduction

📱Ссылка на репозиторий:
https://github.com/rajtilakjee/kivo
Please open Telegram to view this post
VIEW IN TELEGRAM
1⚡2👍2🔥2
📱Tia.

Tia -
это инструмент анализа влияния тестов (Test Impact Analysis) для pytest, который позволяет запускать только те тесты, на которые действительно повлияли ваши изменения в коде.

Зачем тратить драгоценное время CI-пайплайнов на прогон сотен тестов, которые физически не могли сломаться от вашей правки?

Tia
один раз собирает карту покрытия, а затем с помощью git diff вычисляет и запускает строго минимальный набор тестов. Эту же концепцию оптимизации используют внутри себя такие гиганты, как Google и Meta.

🔹Честность и точность на реальных данных:

Главный грех подобных утилит — случайно пропустить тест, который на самом деле должен был упасть. Разработчики tia подошли к вопросу жестко:

🔘Никаких красивых сказок: На связанных и плотных проектах (как Flask) утилита безопасно пропускает около 21% тестов. А вот на хорошо модулированных библиотеках (как boltons) реальный показатель пропуска достигает 96%!

🔘Умный фильтр «косметики»: Если коммит содержит только правку опечаток в комментариях, форматирование через black или добавление докстрингов, tia поймет через сравнение AST-деревьев, что рантайм-код не изменился, и пропустит 99%+ тестов.

🔘Игнорирование «мертвых» тайп-хинтов: Правки внутри блоков if TYPE_CHECKING: не запускают тесты зря. Но если вы измените тип поля в Pydantic или dataclass (что влияет на логику работы), утилита это честно отловит.

🛠Как это работает?

🔘tia record — запускает полную кодовую базу и строит карту на уровне конкретных методов и функций {тест -> {файл -> функции}}, сохраняя её в .tia/map.json. Благодаря системным аудит-хукам утилита запоминает даже не-Python файлы (фикстуры, шаблоны, конфиги), которые читал тест.

🔘tia run — анализирует текущий git diff, сопоставляет измененные строки с функциями и на основе 4 правил (попадание в функцию, изменение модуля, дата-зависимость и появление нового теста) отправляет в pytest только целевой набор.

🔻Готовность к CI и Облаку:

Карту тестов, собранную на базовой ветке, можно легко передавать в задачи пул-реквестов. tia поддерживает работу с удаленными хранилищами из коробки:

🔘Собственный легковесный HTTP-сервер (tia serve) без внешних зависимостей.

🔘Ленивая загрузка SDK для нативных облачных бакетов AWS S3 (s3://) и Google Cloud Storage (gs://).

🔘Автоматическая генерация красивых Markdown-отчетов для GitHub Actions ($GITHUB_STEP_SUMMARY) с детальной таблицей: что изменилось и почему были выбраны именно эти тесты.

🚀Быстрый старт:

pip install -e .

tia record # Строим карту (запуск из корня репозитория)
tia run # Запускаем только затронутые тесты
tia run --since main # Сравниваем изменения относительно ветки main


#Python #Pytest #Testing #QA #Automation #CI #CD #DevOps #Optimization #OpenSource

📱Ссылка на репозиторий:
https://github.com/breadMSA/pytest-tia
Please open Telegram to view this post
VIEW IN TELEGRAM
1🔥22👍1
📱Supertree.

Supertree
- это библиотека для интерактивной визуализации деревьев решений прямо внутри ваших блокнотов Jupyter, JupyterLab и Google Colab.

Если вы когда-нибудь пытались визуализировать глубокое дерево решений стандартными средствами, то знаете, в какую перегруженную и нечитаемую «кашу» оно обычно превращается. supertree решает эту проблему, заменяя статичные графики динамическим интерфейсом.

❓Что умеет инструмент:

🔘Полный интерактив: Поддерживает масштабирование (zoom), перемещение (pan) и сворачивание отдельных узлов/веток, чтобы сфокусироваться на нужных участках.

🔘Трассировка путей: Позволяет наглядно отслеживать, через какие условия и по какому пути шел конкретный сэмпл данных до финального предсказания.

🔘Работает с ансамблями: Умеет вытаскивать и детально показывать отдельные деревья из случайных лесов (Random Forest) или моделей градиентного бустинга.

📦Поддерживаемые экосистемы:

🔘Scikit-learn: Полная совместимость с DecisionTreeClassifier/Regressor, RandomForestClassifier/Regressor, GradientBoosting, HistGradientBoosting и др.

🔘XGBoost: Поддержка XGBClassifier/Regressor, XGBRFClassifier/Regressor и нативных бустеров.

🔘LightGBM: Поддержка LGBMClassifier/Regressor и бустеров.

🔘ONNX: Модели, конвертированные в формат ONNX.

🚀Быстрый старт:

Установка:

pip install supertree


Пример визуализации классификатора на датасете Iris:

from sklearn.tree import DecisionTreeClassifier
from sklearn.datasets import load_iris
from supertree import SuperTree

# Загружаем данные и обучаем модель
iris = load_iris()
model = DecisionTreeClassifier(max_depth=3)
model.fit(iris.data, iris.target)

# Инициализируем визуализатор
super_tree = SuperTree(model, iris.data, iris.target, iris.feature_names, iris.target_names)

# Отрисовываем интерактивное дерево в ноутбуке
super_tree.show_tree()


Если вы работаете со случайным лесом (например, RandomForestRegressor) и хотите изучить конкретное дерево из ансамбля (допустим, с индексом 2), просто укажите его номер при вызове: super_tree.show_tree(2).

#Python #MachineLearning #DataScience #DataVisualization #Jupyter #ScikitLearn #XGBoost #LightGBM #OpenSource #DevTools

📱Ссылка на репозиторий:
https://github.com/mljar/supertree
Please open Telegram to view this post
VIEW IN TELEGRAM
1👍2🔥22