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

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

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

Vcrpy
- это библиотека для Python (порт популярного инструмента VCR из экосистемы Ruby), которая упрощает и многократно ускоряет тестирование кода, завязанного на сетевые HTTP-запросы.

Вместо того чтобы вручную мокать каждый эндпоинт сторонних API, VCR.py использует концепцию «кассет» (cassettes): при первом запуске теста библиотека перехватывает реальные HTTP-запросы и сериализует их вместе с ответами в локальный YAML-файл. При последующих прогонах реальные сетевые вызовы больше не происходят — VCR.py мгновенно воспроизводит сохраненные ответы из файла.

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

🔘Максимальная скорость тестов: Запросы отдаются моментально из локального файла, убирая задержки на сетевой round-trip и ответ сервера.

🔘Работа в офлайне: Тестовый сьют можно без проблем прогонять в самолете, поезде или на изолированных CI/CD раннерах без доступа во внешнюю сеть.

🔘100% детерминированность: Тесты перестают быть нестабильными (flaky) из-за проблем с интернетом, превышения лимитов API (rate limits) или временного падения сторонних сервисов.

🔘Простое обновление: Если логика удаленного API изменилась, не нужно переписывать моки вручную — достаточно удалить файл кассеты, и библиотека автоматически запишет свежие данные при следующем прогоне.

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

С использованием контекстного менеджера:
import urllib.request
import vcr

# Запросы внутри блока запишутся в файл cassettes/example.yaml
with vcr.use_cassette('cassettes/example.yaml'):
response = urllib.request.urlopen('http://httpbin.org/get').read()
assert b'origin' in response


В виде декоратора:

import vcr
import requests

@vcr.use_cassette('cassettes/users.yaml')
def test_users_api():
response = requests.get('https://api.example.com/users')
assert response.status_code == 200
assert len(response.json()) > 0


Совет для Pytest: Для максимально удобной работы в связке с pytest существует официальный плагин pytest-recording, позволяющий использовать маркер
@pytest.mark.vcr и флаги --record-mode .


📦Установка:
pip install vcrpy


✅Проект распространяется под открытой лицензией MIT.

#Python #Testing #QA #Pytest #VCR #VCRpy #Mocking #API #DevTools #OpenSource #Backend

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

Linecast
- это набор интерактивных CLI-приложений для терминала, превращающий открытые гео- и астрономические данные в стильные консольные дашборды с поддержкой мыши: от прогноза погоды и фаз Луны до анимированного радара и полноценных карт с навигацией.

Утилита написана на чистом Python, не требует внешних зависимостей (на macOS и Linux), не запрашивает API-ключи и автоматически подстраивает цвета под текущую палитру вашего терминала.

🔹Шесть встроенных инструментов:

🌦 linecast weather — детальная погода: текущие условия, почасовой прогноз с градиентом светового дня, прогноз на 7 дней, индекс качества воздуха (AQI) и официальные штормовые предупреждения.

☀️ linecast sunshine — движение Солнца по небосводу (по аналогии с циферблатом Solar в Apple Watch), расчет долготы дня, годовой календарь инсоляции (--year) и корректная обработка полярных дней и ночей.

🌑 linecast moon — отображение видимой части Луны с физически точными тенями, пепельным светом и реальными созвездиями вокруг из каталога Yale Bright Star. Поддерживает прокрутку времени, переключение на обратную сторону Луны и традиционные лунно-солнечные календари (иврит, исламский, восточноазиатские).

🌊 linecast tides — графики морских приливов и отливов с отметками пиковых значений и текущего уровня воды по базам NOAA и Open-Meteo.

📡 linecast radar — анимированная карта осадков и спутниковые инфракрасные снимки, отрисованные прямо в терминале с помощью символов Брайля.

🗺 linecast maps — векторные и рельефные карты, интерактивный 3D-глобус с линией терминатора (день/ночь) и облачностью из космоса, а также поиск адресов и пошаговая прокладка автомобильных, пеших и веломаршрутов.

💻Быстрый запуск и установка:

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

uvx linecast weather


Или через скрипт (задействует системный python3):

curl -sL https://raw.githubusercontent.com/ashuttl/linecast/main/get.sh | sh


Установка как постоянной утилиты:

# Через Homebrew
brew install linecast

# Через uv
uv tool install linecast

# Или через pipx
pipx install linecast


Инструмент поддерживает шрифты Nerd Font (linecast icons nerd), умеет отдавать данные в формате JSON (--json), а также выводить компактную строку для статус-баров tmux, Waybar или Polybar (--oneline).

#Python #Linecast #CLI #Terminal #Weather #Maps #OpenSource #Astronomy #Linux #macOS #DevTools

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

Shed Skin
- это экспериментальный транспайлер, который переводит программы на чистом Python 3 с неявной статической типизацией в оптимизированный код на C++.

На выходе инструмент может собирать как автономные исполняемые файлы, так и скомпилированные C++ модули расширения, которые можно импортировать в обычный Python-код в качестве ускоренных библиотек. В отличие от Cython, Shed Skin не требует ручного описания типов в C-стиле — он выводит их автоматически из логики программы.

🔹Производительность и возможности:

🔘Ускорение в 1–100 раз: На наборе из 80+ нетривиальных программ (>25 000 строк кода) прирост скорости относительно CPython составляет в среднем 20× (медианное значение — 12×). На вычислительных задачах (например, алгоритмах решета Эратосфена) Shed Skin опережает PyPy и соревнуется по скорости с Numba.

🔘Два режима компиляции: Сборка в автономный бинарник (shedskin build my_script) или в нативный модуль расширения для вызова из стандартного CPython.

🔘Управление памятью: Под капотом использует сборщик мусора Boehm GC, избавляя от ручного контроля выделения памяти в сгенерированном C++ коде.

⚠️Ограничения и компромиссы:

Shed Skin поддерживает только строго ограниченное подмножество возможностей языка Python:

🔘Неявная статическая типизация: Переменные не могут менять свой тип во время выполнения.

🔘Ограниченная стандартная библиотека: Поддерживается около 25 базовых модулей (среди них random, re, math, time), произвольные тяжелые внешние зависимости подключить нельзя.

🔘Синтаксические рамки: Не поддерживаются некоторые динамические конструкции языка (например, вложенные функции, произвольное число аргументов *args / **kwargs).

💡Когда стоит использовать:

🔘У вас есть ресурсоемкий блок вычислений на несколько сотен или тысяч строк (рендеринг, симуляция, игровая физика, алгоритмическая математика).

🔘Код автономен и не привязан к внешним C-расширениям.

🔘Вы хотите остаться на CPython и не переписывать логику вручную на C++, Rust или Cython.

💻Пример сборки:

В Linux / macOS:

shedskin build test
./build/test


В Windows:


shedskin build test
build\test.exe


#Python #Cpp #ShedSkin #Transpiler #Compiler #Performance #Optimization #OpenSource #DevTools #Algorithms

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

Mitti
- это экспериментальный Python ASGI-фреймворк, объединяющий конкурентное и параллельное выполнение кода под капотом привычной синхронной модели программирования.

Вместо того чтобы заставлять разработчика разбираться с «цветными функциями», async/await и нюансами asyncio, Mitti оставляет код приложения обычным синхронным Python. Фреймворк сам берет на себя управление рантаймом: он распределяет вызовы конкурентно на стандартных сборках с GIL и запускает их в настоящем многопоточном параллелизме на free-threaded сборках Python (no-GIL / PEP 703).

🔹Ключевые особенности:

🔘Синхронный код без бойлерплейта: Вы пишете стандартные синхронные функции (def), а среда Mitti берет на себя планирование и эффективное исполнение потоков.

🔘Готовность к Python 3.13+ (Free-threaded): Спроектирован с прицелом на отказ от GIL. На no-GIL интерпретаторах код масштабируется по процессорным ядрам без межпроцессного оверхеда, а на стандартном Python работает через пул потоков в режиме обратной совместимости.

🔘Стандарт ASGI 3: Приложение легко разворачивается под современными ASGI-серверами (например, Uvicorn).

🔘Современный стек: Включает роутинг, типизированные path- и query-параметры, внедрение зависимостей (Dependency Injection), базовую валидацию, middleware, обработку событий жизненного цикла (lifespan) и сериализацию в JSON.

💻Пример кода:

from mitti import App

app = App()

# Обычная синхронная функция, готовая к параллельному исполнению
@app.get("/users/{user_id}")
def get_user(user_id: int):
return users.get(user_id)


❗️Статус проекта: Ранняя альфа (Early alpha). Для работы требуется Python 3.13+, в идеале — в сборке без GIL (free-threaded Python).

#Python #ASGI #Mitti #NoGIL #FreeThreaded #Concurrency #Multithreading #Backend #WebDevelopment #OpenSource

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

Praxist
- это автономная исследовательская система («персональная R&D-команда»), автоматизирующая процесс научного поиска и экспериментов.

В отличие от стандартного AutoML, который просто перебирает гиперпараметры в фиксированных рамках, или обычных LLM-промптов, Praxist берет на себя весь исследовательский цикл целиком. Система разворачивает команду параллельных агентов, которые выдвигают конкурирующие гипотезы, модифицируют код, валидируют результаты в изолированных тестах и передают доказанный опыт из поколения в поколение.

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

🔘Параллельные исследовательские агенты (Peers): Одновременное исследование альтернативных архитектур, алгоритмов и подходов без взаимной блокировки.

🔘Эволюционный синтез поколений: Накопленные артефакты и выводы предыдущего поколения структурируются в виде доказательной базы и определяют повестку следующей итерации исследований.

🔘Слои зрелости решений (Evidence Lanes): Кандидаты ранжируются по жестким контрактам валидации и распределяются по стадиям (инкубатор, фронтир, проверенные решения / Gems) с учетом компромиссов по Парето при оптимизации нескольких метрик.

🔘Quality-Diversity (QD) и Deep Innovation Gate (DIG): Встроенные эвристики диверсификации, которые не дают системе застрять в локальных оптимумах и стимулируют принципиально новые направления поиска.

🔘Глубокая интеграция с Codex и Claude Code: Практически бесшовная работа через агентские скиллы (команда $praxist-takeover в Codex берет существующий репозиторий, валидирует метрики и автоматически настраивает тестовый контур).

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

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

Установка пакета и запуск мастера первоначальной настройки:

pip install "praxist[agents,codex]"
praxist setup --interactive --install-skills codex


Запуск задачи через Codex в корне готового проекта:

$praxist-takeover
Optimize <целевая метрика и направление> while preserving <ограничения>.
Use 4 peers for up to 5 generations within $50 budget.


Мониторинг и управление активными исследованиями:

# Просмотр статуса в реальном времени
praxist --monitor --latest

# Остановка или возобновление задачи
praxist stop <run_id>
praxist resume <run_dir>


✅Проект распространяется под лицензией Fair Source 1.0 (бесплатно для некоммерческих академических исследований и компаний с годовым доходом до $1 млн).

#Praxist #AIAgents #MachineLearning #Research #Codex #AutoML #Python #DataScience #OpenSource #DevTools #Algorithms

📱Ссылка на репозиторий:
https://github.com/sapientinc/PRAXIST
Please open Telegram to view this post
VIEW IN TELEGRAM
👍33⚡2
📱SGLang.

SGLang
- это высокопроизводительный движок и фреймворк для инференса и развертывания больших языковых (LLM) и мультимодальных моделей (VLM), разработанный сообществом LMSYS.

Проект оптимизирован как для запуска моделей на одиночных потребительских видеокартах, так и для масштабирования на гигантские серверные кластеры. SGLang стал де-факто индустриальным стандартом для инференса MoE-архитектур (включая модели линейки DeepSeek) и генерации роллаутов (rollout engine) на этапе обучения с подкреплением (RL).

🔹Ключевые возможности и архитектурные решения:

🔘RadixAttention: Умное автоматическое кэширование KV-кэша по дереву префиксов (Radix tree). Ускоряет инференс в разы в сценариях с общими системными промптами, few-shot примерами, агентскими циклами и multi-turn диалогами.

🔘Архитектура PD Disaggregation: Разделение стадий prefill (обработка входного контекста) и decode (потоковая генерация токенов) по разным GPU-нодам для максимальной утилизации вычислительной мощности.

🔘Параллелизм масштаба дата-центров: Полная поддержка Tensor, Pipeline, Data и масштабируемого Expert Parallelism (EP) для MoE-моделей на десятках и сотнях GPU (включая стойки NVIDIA GB200/GB300 NVL72).

🔘Быстрый структурированный вывод: Генерация строгого JSON и следование схемам до 3 раз быстрее аналогов благодаря оптимизированным конечным автоматам (Compressed FSM).

🔘Day-0 поддержка новейших моделей: Мгновенная адаптация топовых открытых моделей (DeepSeek-V3/R1/V4, Kimi K3, Nemotron 3, GLM, LLaVA, диффузионных генераторов видео и изображений WAN и Qwen-Image).

🔘Аппаратная всеядность: Оптимизирован под архитектуры NVIDIA (от RTX 4090/5090 до H100/B200/GB300), AMD Instinct (MI300X, MI355), Google TPU (через бэкенд на JAX) и Intel Xeon.

🔘Основа для RL и Post-Training: Служит высокоскоростным бэкендом генерации ответов во фреймворках обучения с подкреплением (verl, Miles, AReaL, slime).

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

Установка:
pip install "sglang[all]"


Запуск OpenAI-совместимого сервера инференса:

python -m sglang.launch_server \
--model-path deepseek-ai/DeepSeek-V3 \
--port 30000 \
--tp 8


Отправка запроса через
Python:
import openai

client = openai.Client(base_url="http://127.0.0.1:30000/v1", api_key="None")

response = client.chat.completions.create(
model="default",
messages=[{"role": "user", "content": "Объясни квантовые вычисления простыми словами."}],
temperature=0.7,
)
print(response.choices[0].message.content)


#SGLang #LLM #AI #Inference #MachineLearning #DeepSeek #NVIDIA #AMD #OpenSource #DevTools #Python #DataScience

📱Ссылка на репозиторий:
https://github.com/sgl-project/sglang
Please open Telegram to view this post
VIEW IN TELEGRAM
4⚡1👍1
📱Citry.

Citry
- это строго типизированный фронтенд-фреймворк для Python, объединяющий серверные события и Alpine.js для создания реактивных веб-интерфейсов без необходимости вести отдельный frontend-проект на JavaScript.

Архитектура проекта вдохновлена идеями Vue и Laravel Livewire: один Python-компонент инкапсулирует HTML-разметку, стили CSS, логику браузера, серверные обработчики событий и переводы интерфейса.

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

🔘Строгая типизация (Full Typing): Входные параметры компонентов валидируются через аннотации типов Python (Kwargs). Опечатки в свойствах или пропущенные поля отлавливаются на этапе статического анализа, а метод template_data() изолирует контекст, доступный шаблону.

🔘Реактивность без тяжелого JS-стека: Бесшовная связка с Alpine.js и серверными событиями (Server Events) позволяет обновлять части DOM-дерева на лету прямо из Python-кода без сборщиков Webpack/Vite.

🔘HTML-подобная композиция: Компоненты вкладываются друг в друга через наглядные теги <c-ComponentName>, а атрибуты с префиксом c- вычисляют Python-выражения (например, c-messages="user.inbox").

🔘Фреймворк-агностик: Легко монтируется в существующие бэкенды на FastAPI, Django, Flask, Starlette, а также в любые чистые ASGI- и WSGI-приложения.

🔘Развитая экосистема разработки:

✔️Официальное расширение для VS Code с автодополнением, диагностикой и подсветкой синтаксиса шаблонов.

✔️Встроенный CLI-анализатор (citry check --static).

✔️Библиотека готовых доступных UI-компонентов (citry-ui) — диалоги, формы, навигация и таблицы.

💻Пример компонента:
from citry import Component

class Welcome(Component):
class Kwargs:
name: str
messages: list[str]

def template_data(self, kwargs, slots):
return {
"name": kwargs.name,
"messages": kwargs.messages,
}

template = """
<section class="welcome">
<h1>С возвращением, {{ name }}!</h1>
<ul>
<li c-for="message in messages">{{ message }}</li>
<li c-empty>Новых сообщений нет.</li>
</ul>
</section>
"""

css = """
.welcome { border-top: 3px solid #2563eb; }
"""

# Рендеринг компонента в HTML-строку
html = str(Welcome(name="Алексей", messages=["Сборка завершена", "Отчет готов"]))


📦Установка:
pip install citry
# или через uv:
uv add citry


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

#Citry #Python #Frontend #Fullstack #FastAPI #Django #Flask #AlpineJS #Livewire #WebDev #OpenSource #DevTools

📱Ссылка на репозиторий:
https://github.com/citry-dev/citry
Please open Telegram to view this post
VIEW IN TELEGRAM
4🔥1
📱Plotex.

Plotex
- это легковесная библиотека для Python, позволяющая строить графики, диаграммы и визуализировать данные прямо внутри терминала в виде цветного псевдографического текста.

Главное преимущество библиотеки — она полностью автономна: базовый функционал не требует никаких внешних зависимостей и библиотек вроде matplotlib или numpy. При этом она способна превратить обычную консоль в полноценную графическую панель.

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

🔘Широкий набор типов графиков:

✔️Базовые: линейные графики (line), точечные (scatter), стержневые (stem).

Столбчатые и статистические: гистограммы, боксплоты (box plots), накопленные (stacked) и плавающие столбчатые диаграммы.

✔️Специализированные: тепловые карты (heatmaps), матрицы ошибок (confusion matrices), полосы погрешностей (error bars) и индикаторы.

✔️Финансовые: японские свечи (candlestick) и шкалы дат/времени.

🔘Субсимвольное разрешение: Разбивает знакоместо символа на матрицу суб-точек (включая символы Брайля), позволяя отображать в 4–8 раз больше точек данных на том же экранном пространстве.

🔘Интерактивность и медиа: Поддерживает анимацию, потоковое обновление графиков в реальном времени (live stream), рендеринг картинок, GIF и даже воспроизведение видео со звуком (включая ролики с YouTube).

🔘Сетки и сабплоты (Subplots): Позволяет верстать сложные многопанельные дашборды с любой степенью вложенности, индивидуальными темами и масштабом.

🔘Гибкая стилизация: 12 готовых тем оформления, настройка осей, меток, легенды, а также поддержка собственных цветовых палитр терминала.

🔘Готовый CLI-инструмент: Позволяет строить графики из входного потока данных прямо в командной строке без написания Python-кода.

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

import plotext as plt

# Данные для графика
y = [1, 5, 3, 8, 4, 9, 6]

# Настройка и вывод
plt.plot(y)
plt.title("График в терминале")
plt.theme("dark")
plt.show()


📦Установка:

pip install plotext


#Python #Plotext #DataVisualization #Terminal #CLI #DataScience #DevTools #OpenSource #Console #Analytics

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

DeployProof
- это инструмент командной строки (CLI) для Python, предназначенный для верификации кода (в том числе сгенерированного ИИ) с помощью молниеносного мутационного тестирования AST прямо в оперативной памяти.

Нейросети вроде Copilot или ChatGPT легко генерируют тесты со 100% покрытием строк (line coverage), которые при этом не проверяют реальную логику и граничные условия: мутационный скор у такого сьюта часто близок к нулю. DeployProof решает эту проблему прямо перед коммитом или пушем в CI.

🧬 В чем отличие от Mutmut и Cosmic Ray?

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

🔘DeployProof компилирует все мутации в единое условное AST-дерево прямо в RAM (без дискового I/O) и анализирует только измененные файлы из текущего git diff. Проверка отрабатывает за пару секунд — буквально пока вы переключаете вкладку.

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

🔘In-Memory AST Mutation: Мутирует операторы (>=, ==, and, or), константы, граничные значения строк, меняет аргументы местами и убирает await без перезаписи файлов на диске.

🔘Самоисцеление тестов (Self-Healing Tests): Флаг --heal-tests анализирует выживших мутантов и автоматически синтезирует готовые к запуску pytest-кейсы, закрывающие обнаруженные дыры в логике.

🔘Комплексные шлюзы безопасности (Security Gates):

🔘SAST: Проверка на инъекции, shell=True, небезопасную десериализацию (pickle, yaml.load) и обход путей.

🔘Поиск секретов: Анализ энтропии Шеннона в файлах и последних 50 коммитах Git (поиск API-ключей OpenAI, AWS, GitHub, Stripe).

🔘Защита от галлюцинаций ИИ: Проверяет установленные пакеты через PyPI API на предмет выдуманных нейросетью библиотек (slopsquatting) и сопоставляет с базой уязвимостей OSV (CVE).

🔘100% приватность: Код и результаты тестов не покидают вашу локальную машину (в сеть уходят только read-only запросы к PyPI и OSV).

💻Пример работы:

# Проверка изменений в git diff перед пушем
deployproof check

# Автоматическая генерация тестов под выжившие мутации
deployproof check --heal-tests

# Установка pre-push хука в один клик
deployproof init


📦Установка:

pip install deployproof
# или изолированно через pipx:
pipx install deployproof


#Python #DeployProof #MutationTesting #Testing #QA #Pytest #AICode #DevTools #OpenSource #AppSec #CICD

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

Cayu
- это production-ready среда выполнения (agent runtime) для создания, масштабирования и надежной эксплуатации автономных ИИ-агентов на Python.

Собрать прототип агента на базе стандартных SDK сегодня несложно, но реальные проблемы в проде начинаются на стыках инфраструктуры: падение процесса прямо во время внешнего API-вызова, утечка учетных данных, переполнение контекста LLM, необходимость паузы для аппрува человеком или потеря истории расходов при ретраях. Cayu закрывает именно эти эксплуатационные вызовы, предоставляя надежные низкоуровневые примитивы без привязки к громоздким внешним оркестраторам.

🔹Ключевые возможности и примитивы рантайма:

🔘Durable Execution и контрольные точки: Сессии, события и транскрипты сохраняются в базу (SQLite локально или PostgreSQL в проде). Любой пайплайн агента можно поставить на паузу, безопасно форкнуть, прервать или возобновить (resume) после перезапуска сервиса.

🔘Human-in-the-Loop (HITL): Нативные механизмы согласований (approvals) и ручного вмешательства. Если модели требуется подтверждение опасного действия или дополнительный ввод от пользователя, выполнение встает на чекпоинт.

🔘Безопасность и виртуальный egress: Строгие политики вызова инструментов (ToolPolicy), типизированные эффекты и изоляция учетных данных. Агенты могут выполнять задачи (например, работу с Git/GitHub CLI), не получая прямого доступа к боевым токенам хоста.

🔘Изоляция окружений: Поддержка локальных воркспейсов, Docker-контейнеров, песочниц E2B и легковесных микро-ВМ (Microsandbox, AWS Lambda MicroVM).

🔘Контроль контекста и расходов: Автоматический подсчет токенов, алгоритмическое сжатие контекста (compaction), защита от переполнения окна модели и пошаговый учет стоимости каждого вызова.

🔘Встроенный Control Plane: Включает готовый сервер на FastAPI и веб-дашборд на React/TypeScript для мониторинга сессий, трейсов, артефактов и задач. Исходники дашборда можно в один клик извлечь для кастомизации (cayu dashboard eject).

🔘Мультипровайдерность: Поддержка OpenAI, Anthropic, AWS Bedrock, Google Cloud Vertex AI, OpenRouter, а также локальный режим авторизации через личную подписку ChatGPT.

💻Пример запуска агента на Python:
import asyncio
from cayu import (
AgentSpec,
CayuApp,
Message,
OpenAIProvider,
RunRequest,
run_to_completion,
)

async def main() -> None:
app = CayuApp()
# Регистрация провайдера (берет ключ из OPENAI_API_KEY)
app.register_provider(OpenAIProvider(), default=True)
app.register_agent(AgentSpec(name="assistant", model="gpt-4o"))

# Надежный запуск с фиксацией событий в сессии
outcome = await run_to_completion(
app,
RunRequest(
agent_name="assistant",
messages=[Message.text("user", "Объясни концепцию durable agent execution.")],
),
)

if outcome.ok:
print(outcome.final_text)
else:
print(f"Ошибка {outcome.status}: {outcome.error}")

asyncio.run(main())


🚀Быстрый старт через CLI:
pip install cayu

# Генерация готового каркаса проекта
cayu new myagent
cd myagent

# Запуск проверок и тестов
cayu check --fail-on warning --json
pytest


✅Проект распространяется под открытой лицензией Apache 2.0.

#Python #Cayu #AIAgents #LLM #AgenticAI #DevTools #MachineLearning #OpenSource #Backend #SoftwareEngineering

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

Engrim
- это универсальный открытый стандарт эпизодической памяти для ИИ-агентов и кодинг-ассистентов, позволяющий свободно переключаться между различными инструментами и моделями (Claude Code, Cursor, Codex CLI, Google Antigravity, GitHub Copilot CLI, OpenCode, Windsurf) на одной кодовой базе без потери архитектурных решений, ограничений и проектного контекста.

Главная проблема современных чат-сессий при разработке — «ловушка 200k-токенов»: повторная отправка сотен тысяч токенов сырых логов размывает внимание LLM, вызывает галлюцинации и раздувает стоимость вызовов, а очистка чата (/clear) сбрасывает контекст до нуля. Engrim решает это заменой сырой истории диалога на компактный, высокоточный пак рабочей памяти (~4000 символов, менее 1000 токенов / <1% окна контекста), который хранится локально в SQLite.

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

🔘Воркфлоу Continue-As-Clear: Когда контекстное окно забивается или модель начинает «плыть», вы просто очищаете чат командой /clear. Следующая сессия автоматически подхватывает актуальные архитектурные решения, состояние проекта и указатель [▶️ RESUME HERE].

🔘100% Local-First и приватность: Данные хранятся исключительно на вашей машине в файле ~/.engrim/memory.db (режим SQLite WAL, права доступа POSIX 0600). Никакой телеметрии, облачной синхронизации и риска утечки проприетарного кода в сторонние SaaS-сервисы.

🔘Отслеживание авторства решений (Provenance Tracking): Запоминает, какой именно агент инициировал изменение (origin_agent: claude-code, cursor, antigravity, codex и т.д.). В памяти четко видно, кто переключил базу данных на PostgreSQL или стандартизировал схемы Pydantic.

🔘Быстрый гибридный поиск (~30 мс на CPU): Комбинирует полнотекстовый лексический поиск (BM25 / FTS5) и легковесные векторные эмбеддинги (model2vec), работая полностью на процессоре без необходимости в GPU.

🔘Самоисцеление окружений (engrim doctor --fix): Проводит аудит базы данных, проверяет статус хуков жизненного цикла во всех средах и автоматически исправляет пути к бинарникам при смене каталогов или переносе конфигов между машинами.

🔘Нативный MCP-сервер: Из коробки реализует протокол Model Context Protocol с инструментами engrim_add, engrim_recall, engrim_context и engrim_review.

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

Установка:

pip install engrim


Автоматическая настройка всех сред разработки на машине:


# Сам находит установленные Claude Code, Cursor, Codex, Copilot и др. и прописывает хуки/MCP
engrim setup

# Диагностика и автоматическое исправление путей:
engrim doctor --fix


Добавление важного архитектурного решения вручную:


engrim add -t decision -s "Перешли на PostgreSQL и нормализовали схемы данных"


✅Проект распространяется под открытой лицензией MIT.

#Engrim #Python #AIAgents #ClaudeCode #Cursor #Codex #LLM #DevTools #OpenSource #SoftwareEngineering #Architecture #MCP

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

Hyperresearch
- это специализированная среда и фреймворк (research harness) для Claude Code, превращающий ассистента в автономного агента глубоких исследований (Deep Research Agent) с автоматической верификацией источников и защитой от галлюцинаций.

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

🔹Главные фичи и архитектурные решения:

🔘250+ источников за один прогон: Масштабный охват предметной области с автоматическим поиском пробелов (gap-fill) и отслеживанием цепочек цитирований (citation chasing).

🔘Аудит независимости (Independence Audit): Система группирует синонимичные копии и перепечатки — пять повторов одного пресс-релиза в разных СМИ считаются за один источник, исключая иллюзию консенсуса.

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

🔘Враждебная критика (Adversarial by design): Четыре агента-критика параллельно атакуют готовый драфт (по диалектике, глубине, ширине охвата и соответствию задаче). Агент-патчер ограничен правами [Read, Edit] и может вносить только точечные хирургические правки — переписать отчет целиком он физически не может.

🔘Академический поиск в один запрос: Команда hpr scholar search одновременно опрашивает OpenAlex, Crossref, CORE, DOAB, ClinicalTrials.gov, SEC EDGAR и FRED, возвращая единый дедуплицированный список (статьи, монографии, клинические испытания, отчеты регуляторов).

🔘Легальный доступ к полным текстам (Open Access): При обнаружении пейволла Hyperresearch автоматически ищет легальные открытые копии через Unpaywall, Europe PMC и CORE, выгружая полный текст вместо короткого абстракта.

🔘Постоянное хранилище (Vault): Статьи и заметки сохраняются в формате Markdown + SQLite (с поддержкой FTS, PageRank-графа ссылок и векторного поиска). Хранилище доступно вне Claude Code через встроенный MCP-сервер и локальный веб-интерфейс.

🔘Защита от Prompt Injection: Весь спарсенный веб-контент изолируется в теги <untrusted-source>, гарантируя, что внедренные на страницах инструкции не перехватят управление агентом.

⏱️Режимы работы (Tiers):

🔘Light (~30–40 мин): Компактный 5-шаговый маршрут для фактологических справок и экспресс-сравнений.

🔘Full (~1.5–2.5 ч): Полный 16-шаговый цикл с глубоким анализом, оппонирующими критиками и аудитом цитирований (55–130 источников).

🔘Dissertation (экспериментальный, ~4–8 ч): Разбивка на 4–10 глав, анализ 300–450 источников и формирование объемных документов на 25 000 – 80 000 слов.

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

Установка:
cd your-project
pip install hyperresearch && hyperresearch install


Запуск исследования в интерфейсе Claude Code:

/hyperresearch Объясни состояние рынка квантовых вычислений на ионных ловушках


✅Проект написан на Python (3.11–3.14) и распространяется под открытой лицензией MIT.

#Hyperresearch #ClaudeCode #DeepResearch #AIAgents #Anthropic #Python #Research #LLM #OpenSource #DevTools #DataScience

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

TonIO
- это многопоточный асинхронный рантайм для free-threaded Python (сборки без GIL), написанный на Rust поверх крейта mio и вдохновленный архитектурой Tokio, Trio и TinyIO.

В отличие от стандартного asyncio, чей цикл событий (event loop) жестко привязан к одному системному потоку, TonIO спроектирован под реалии современного многопоточного Python 3.13+ (PEP 703): рантайм автоматически распределяет и исполняет корутины параллельно на нескольких ядрах процессора.

🔹Ключевые особенности:

🐱Два стиля синтаксиса (Coloring vs Uncolored):

🔘Модуль tonio.colored предоставляет привычный синтаксис async / await.

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

✔️Rust-ядро на mio: Высокопроизводительный неблокирующий системный I/O (epoll, kqueue, IOCP) и планировщик задач прямо под капотом Python.

✔️Структурная конкурентность (Structured Concurrency):

🔘tonio.scope() гарантирует корректную отмену и сбор всех дочерних корутин при выходе из контекста или возникновении исключений.

🔘tonio.select() для конкурентных гонок задач (отменяет оставшиеся корутины при первом завершении).

✔️Синхронизация и MPMC-каналы:

🔘События Event и комбинируемые ожидатели Waiter через операторы пересечения и объединения (w1 & w2, w1 | w2).

🔘Lock, Semaphore, Barrier и каналы передачи сообщений (bounded и unbounded) с неблокирующими методами send_nowait / receive_nowait.

✔️Сетевой стек и системные примитивы:

🔘Высокоуровневые стримы для TCP, Unix Domain Sockets и TLS (open_tcp_stream, serve_tcp).

🔘Низкоуровневый модуль tonio.io для подключения любых файловых дескрипторов ОС к системному поллеру.

🔘Асинхронная файловая система tonio.fs и управление подпроцессами (run_process, open_process).

✔️Интеграция с Pytest: Поставляется с готовым плагином, маркером @pytest.mark.tonio и авто-режимом для тестирования асинхронного кода.

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

С классическим синтаксисом async / await:

import tonio.colored as tonio

async def fetch_data(task_id: int):
await tonio.sleep(0.5)
return f"Результат {task_id}"

@tonio.main
async def main():
# Параллельный запуск задач в пуле потоков рантайма
parallel = tonio.spawn(
fetch_data(1),
fetch_data(2)
)

extra = await fetch_data(3)
res1, res2 = await parallel

print([res1, res2, extra])

main()


С синтаксисом на чистом
yield (без async/await):

import tonio

def fetch_data(task_id: int):
yield tonio.sleep(0.5)
return f"Результат {task_id}"

@tonio.main
def main():
parallel = tonio.spawn(fetch_data(1), fetch_data(2))
extra = yield fetch_data(3)
res1, res2 = yield parallel
print([res1, res2, extra])

main()


⚠️ Важно: Проект находится в активной разработке (WIP), не совместим напрямую с объектами asyncio (для интеграций доступен проект-патчер TonIO-Monkey) и рассчитан исключительно на free-threaded Python без GIL.

✅Лицензия: BSD 3-Clause.

#Python #Rust #TonIO #Async #NoGIL #FreeThreaded #Tokio #Concurrency #Multithreading #Performance #DevTools #OpenSource

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

Kev
- это семейство открытых компактных моделей принятия решений (decision models) на базе Qwen3.5 и Qwen3.8, вдохновленное архитектурой Jev и API TypeSafe System One.

Вместо того чтобы гонять тяжелые генеративные LLM ради простых задач классификации, роутинга и скоринга, Kev выполняет быстрый направленный анализ текста и возвращает строго калиброванные вероятности по каждому вопросу. Это позволяет коду автоматически маршрутизировать уверенные кейсы и передавать пограничные ситуации операторам-людям.

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

🔘Три типа вопросов в одном запросе:

noul — бинарные вопросы (да/нет) с выдачей точной вероятности.

choice — множественный выбор из списка вариантов с распределением вероятностей и метрикой уверенности.

score — рейтинговая шкала оценки (например, уровень срочности или тональности) со средним баллом.

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

🔘Полная совместимость с TypeSafe / Jev: Работает как drop-in замена коммерческого API System One — вы можете направить официальный typesafe-sdk на свой локальный инстанс Kev без изменения клиентского кода.

🔘Четыре размера под любые ресурсы:

Kev-0.8B — работает на ноутбуках и Apple Silicon через нативный бэкенд MLX.

Kev-4B и Kev-9B — оптимальный баланс точности и скорости (работают на картах уровня L40S, A100, H100).

Kev-27B — флагман на базе Qwen3.8 для 80 ГБ GPU, практически не уступающий проприетарному Jev по качеству на сложных задачах.

🔘Экстремальная скорость инференса: Kev-4B обрабатывает 6 вопросов по тексту за ~18 мс на H100 (или ~40 мс на L40S). При повторных вопросах к тому же документу контекст берется из кэша.

🔘Простой дообучение (Fine-Tuning): Модель легко дообучается на собственных размеченных данных через LoRA (--init_from). Также доступен готовый агентский скилл (kev-finetune) для запуска цикла обучения и деплоя в облаке Modal.

💻Пример использования в Python (через typesafe-sdk):

from typesafe_sdk import Choice, Noul, Score, TypeSafeClient

# Подключение к локальному серверу Kev
client = TypeSafeClient(
api_key="local",
base_url="http://127.0.0.1:8009",
model="kev-latest",
)

# Анализ тикета службы поддержки
response = client.system_one(
state="Заказ задержался на 2 недели, привезли не тот размер. Еще и списали деньги дважды!",
questions={
"billing": Noul(instructions="Вопрос связан с оплатой или списанием средств?"),
"department": Choice(
instructions="В какой отдел направить тикет?",
criteria={
"billing": "Счета, оплаты и возвраты денег",
"shipping": "Статус доставки, задержки курьера",
"returns": "Обмен и возврат бракованного товара",
},
),
"urgency": Score(
instructions="Оцените срочность тикета",
criteria=["может подождать", "в течение недели", "срочно сегодня"],
),
},
)

# Извлечение результатов
print("Вероятность проблемы с биллингом:", response.nouls["billing"].noul)
print("Целевой отдел:", response.choices["department"].choice)
print("Срочность:", response.scores["urgency"].score)


🚀Быстрый запуск:

Локальный запуск через uv:

git clone https://github.com/jaredpalmer/kev.git && cd kev
uv sync --extra serve

# Запуск сервера (CUDA / ROCm / Apple Silicon MLX подхватятся автоматически):
uv run --extra serve python -m kev.serve --run jaredpalmer/kev-4b --port 8009


✅Проект распространяется под открытой лицензией Apache 2.0.

#Kev #MachineLearning #LLM #DecisionModels #Qwen #NLP #Classification #Python #MLX #OpenSource #DevTools

📱Ссылка на репозиторий:
https://github.com/jaredpalmer/kev
Please open Telegram to view this post
VIEW IN TELEGRAM
1👍42
📱Reef.

Reef
- это первая открытая инфраструктура для создания непрерывно самосовершенствующихся ИИ-агентов (continually self-improving agents), объединяющая в единый контур инференс, сбор обратной связи, дообучение и версионированную доставку обновлений.

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

🔄Как устроен 4-шаговый цикл обучения (Core Loop):

✔️Serve (Раздача): Обслуживание боевого трафика через OpenAI- и Anthropic-совместимый API. Каждому ответу присваивается уникальный идентификатор взаимодействия (x-reef-agent-record-id).

✔️Observe (Наблюдение): Сопоставление поступившей обратной связи (числовой скор, текстовые замечания или статус прохождения тестов) с записями сессий.

✔️Grow (Генерация обновлений): Обработка валидных данных по выбранному сценарию (рецепту) и запуск итерации обучения.

✔️Commit (Фиксация): Тестирование кандидатов, сохранение истории версий в Git LFS и бесшовная доставка обновлений в рантайм без перезапуска сервиса.

🧬Два пути эволюции:

🔘Обучение весов модели (Model Weight Training): Затачивает саму LLM под специфику задач с использованием RL-фреймворков (Slime, veRL, AReaL) и высокопроизводительного движка SGLang.

🔘Эволюция харнесса агента (Harness Optimization / Reefine): Если у вас нет кластера GPU, агент может оптимизировать свой «обвес» — системные инструкции, регламенты поведения и код кастомных инструментов/скиллов через обращение к внешнему API. Достаточно поставить задачу на естественном языке (например: «перед исправлением бага всегда пиши воспроизводящий падающий тест»), и агент сам внесет правки в свои правила и протестирует обновленную конфигурацию.

🔘Test-Time Training: Подходит для научных задач и сложных алгоритмических исследований с измеримым критерием корректности (успешно протестировано на задачах AIME, IMOAnswerBench и переборе математических конфигураций).

💻Пример взаимодействия и отправки фидбека:

import httpx

reef = httpx.Client(
base_url="http://127.0.0.1:8900",
headers={"Authorization": "Bearer reef-local", "x-reef-scenario": "customer-support"}
)

# 1. Отправляем стандартный запрос
response = reef.post(
"/v1/chat/completions",
json={
"model": "Qwen/Qwen2.5-1.5B-Instruct",
"messages": [{"role": "user", "content": "Помоги оформить возврат заказа #1234"}],
},
)
response.raise_for_status()

# Забираем чек транзакции из заголовков
receipt_id = response.headers["x-reef-agent-record-id"]
answer = response.json()["choices"][0]["message"]["content"]

# 2. Отправляем оценку качества ответа для запуска цикла обучения
reef.post(
"/reef/report",
json={
"score": 1.0,
"feedback": "Отличный ответ: запросил детали чека и назвал корректные сроки",
"references": [receipt_id],
},
)


📦Установка:

# Требуется установленный git-lfs в системе
uv pip install reef-infra


Быстрый запуск сервера инференса:


uv run reef serve --inference.model-path Qwen/Qwen2.5-1.5B-Instruct


#Reef #Python #AIAgents #LLM #ReinforcementLearning #SGLang #Slime #MachineLearning #OpenSource #DevTools #PostTraining

📱Ссылка на репозиторий:
https://github.com/Human-Agent-Society/reef
Please open Telegram to view this post
VIEW IN TELEGRAM
👍22
📱Fastlogging-rs.

Fastlogging-rs
- это сверхбыстрый и универсальный кросс-язычный фреймворк для логирования, написанный на Rust и предоставляющий унифицированный API для Python, Rust, C/C++, Go, Java и C#.

Главная проблема традиционных логгеров (например, стандартного модуля logging в Python) — синхронный ввод-вывод, способный сильно просаживать производительность под высокой нагрузкой.

fastlogging-rs решает это архитектурно: вызовы логов абсолютно неблокирующие (non-blocking) и потокобезопасные, а сброс данных во внешние приемники происходит в фоновых потоках. В бенчмарках на запись в файл с ротацией он оказывается быстрее стандартного Python-логгера более чем в 100 раз (0.17 с против 35.2 с).

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

🔘Экстремальная производительность: Запись сообщений не тормозит основной поток приложения, пока не переполнится внутренняя очередь.

🔘Полноценная кросс-язычность: Единый согласованный API для Rust, Python (>=3.10 через PyO3), C / C++ (FFI/CXX), Go, Java (через FFM и JNI) и C#.

🔘Автоматический сбор из подпроцессов: Автоматически перенаправляет логи из дочерних процессов (multiprocessing / child processes) в основной процесс с поддержкой глубоких уровней вложенности.

🔘Богатый выбор приемников (Sinks / Writers):

✔️Консоль с поддержкой цветов;

✔️Файлы с автоматической ротацией и сжатием;

✔️TCP-клиент с аутентификацией и AES-шифрованием сетевых логов;

✔️Системные журналы: Syslog (Linux) и EventLog (Windows);

✔️Пользовательские функции обратного вызова (Callbacks).

🔘Гибкая конфигурация: Настраивается как программно через API, так и декларативно через файлы конфигурации (JSON, XML, YAML).

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

from fastlogging import Logging

# Инициализация и логирование
log = Logging()
log.info("Привет из fastlogging!")

# Корректное завершение фоновых потоков
log.shutdown(False)


#Fastlogging #Rust #Python #Logging #Performance #Backend #DevTools #Cpp #Golang #Java #OpenSource

📱Ссылка на репозиторий:
https://github.com/brmmm3/fastlogging-rs
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3⚡1
📱Bashautom.

Bashautom
- это легковесная Python-библиотека для управления персистентными (долгоживущими) сессиями Bash, сохраняющая контекст и состояние шелла между последовательными командами.

При использовании стандартного subprocess.run() на каждый вызов порождается абсолютно новый изолированный процесс: изменения рабочей директории (cd), экспортированные переменные (export) и активированные виртуальные окружения (source .env) моментально сбрасываются. Библиотека pexpect решает проблему персистентности, но завязана на хрупкий интерактивный парсинг шелл-промптов.

bashautom держит один живой процесс /bin/bash в фоновом режиме и возвращает чистый структурированный результат по каждой команде без необходимости писать регулярные выражения и шаблоны expect.

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

🔘Персистентность окружения: Переменные среды, активная директория (cwd) и результаты выполнения скриптов через source сохраняются между вызовами метода .execute().

🔘Структурированный CommandResult: Каждая команда возвращает подробный статус: stdout, stderr, exit_code, флаг success, флаг timed_out и точное время выполнения в секундах (duration).

🔘Безопасные таймауты: Если команда превышает заданный лимит времени (timeout=N), она принудительно прерывается, но сама bash-сессия остается живой и готовой принимать следующие команды.

🔘Потоковый вывод в реальном времени: Поддержка коллбеков (stream_callback) для чтения stdout/stderr по мере генерации (полезно для логов сборки и долгих циклов).

🔘Менеджер сессий (SessionManager): Удобное создание, координация и параллельное управление несколькими именованными bash-сессиями в разных директориях.

🔘Встроенные хелперы: Быстрый доступ к состоянию процесса через методы set_env(), get_env(), get_cwd(), проверку PID и флага alive.

💻Пример использования:
from bashautom import Session

with Session() as s:
# Состояние сохраняется от шага к шагу:
s.execute("cd /opt/myproject")
s.execute("source .env")
s.execute("export BUILD_ID=42")

# Выполнение с контролем времени
result = s.execute("make build", timeout=120)

if result.success:
print(f"Сборка завершена за {result.duration:.2f} сек")
print(result.stdout)
else:
print(f"Ошибка (код {result.exit_code}):", result.stderr)


Потоковый вывод (Streaming):

from bashautom import Session
from bashautom.session import StreamEvent

def on_output(event: StreamEvent):
print(f"[{event.stream}] {event.data.strip()}")

with Session() as s:
s.execute("for i in 1 2 3; do echo $i; sleep 0.5; done", stream_callback=on_output)


📦Установка:
pip install bashautom


✅Требования: Python 3.10+, поддержка Linux и macOS. Лицензия: MIT.

#Bashautom #Python #Bash #DevOps #Automation #Linux #MacOS #CLI #Scripting #OpenSource #DevTools

📱Ссылка на репозиторий:
https://github.com/huskago/bashautom
Please open Telegram to view this post
VIEW IN TELEGRAM
👍31
📱RightWayUp.

RightWayUp
- это открытая модель компьютерного зрения (Computer Vision) от команды ORTUS AI, предназначенная для определения угла поворота (roll) изображений в полном диапазоне 360° с шагом в 1° и механизмом калиброванного воздержания от ответа (calibrated abstention).

Большинство классических решений либо классифицируют поворот только с шагом 90° (0°, 90°, 180°, 270°), либо «считывают» ориентацию не по смыслу сцены, а по артефактам повернутой 8×8 сетки блоков JPEG. Кроме того, обычные модели пытаются повернуть даже те кадры, где верха и низа объективно не существует.

RightWayUp
решает эти проблемы: модель возвращает точный угол по часовой стрелке (angle_cw), скор уверенности (confidence), флаг воздержания (abstain) и умеет автоматически сохранять исправленный снимок.

🔹Ключевые особенности и архитектура:

🔘Полный круг 360° с точностью до 1°: Непрерывная оценка угла поворота кадра на основе архитектуры DINOv2 (ViT) с 360-биновой классификационной головой и circular-Gaussian soft target loss.

🔘Калиброванное воздержание (Calibrated Abstention): Если на снимке нет выраженного «верха» (текстуры, сплошная стена, чистое небо, съемка поверхности строго сверху вниз), модель активирует флаг abstain, исключая ложные срабатывания в автоматических пайплайнах.

🔘Защита от читерства на JPEG-сетке (The Grid Fix): Архитектура обучена на «чистых» данных без утечки сетки сжатия (lossless cue-free rendering), благодаря чему модель анализирует реальную физику и геометрию сцены, а не артефакты ресемплинга.

🔘Результаты выше человека и мультимодальных LLM: На бенчмарке RotBench старшие версии модели показывают 100% точности при поворотах на 0/90/180/270°, опережая как живых асессоров (97–99%), так и современные мультимодальные модели вроде GPT-5 и Gemini 2.5 Pro (40–80%).

🔘Устойчивость к помехам: Изначально создавалась для систем мониторинга камер видеонаблюдения (CCTV/CHEQIT) — отлично справляется с размытием, ночной съемкой, низким разрешением и даже тепловизионными кадрами.

🔧Линейка моделей (Tiers):

🔘Pico / Nano (23M параметров): Экстремально быстрые модели (0.55 мс на GPU, 3–7 мс на CPU). Pico оптимизирована для запуска прямо в браузере через WebAssembly/ONNX Runtime Web.

🔘Fast (23M параметров, 224 px): Дистиллированная из Max версия для edge-устройств и парков камер (0.68 мс на GPU).

🔘Balanced / Pro (Каскады Fast → Max): Большинство простых кадров обрабатываются быстрой сетью Fast, а пограничные и сложные передаются тяжелой модели Max.

🔘Max (306M параметров, ViT-L/14, 280 px): Флагманская модель для максимальной точности на сложных ракурсах и датасетах.

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

Установка:

pip install rightwayup


Использование через CLI:


# Определение угла поворота
rightwayup predict frame.jpg

# Автоматическое выравнивание с привязкой к 90° (пропускает кадры с abstain)
rightwayup fix photo.jpg --snap 90 --out upright/


Использование в
Python:

from PIL import Image
from rightwayup import Orienter

# Инициализация модели (pico, nano, fast, balanced, pro, max)
orienter = Orienter(tier="balanced")

# Предсказание угла
result = orienter.predict("frame.jpg")
print(f"Поворот: {result.angle_cw}°, Уверенность: {result.confidence}, Воздержание: {result.abstain}")

# Коррекция положения
corrected_img = orienter.correct(Image.open("photo.jpg"), snap=90)


Модели доступны в форматах ONNX (FP32, FP16, INT8), Core ML (для Apple Silicon / Neural Engine) и TensorRT.

✅Лицензия: Apache 2.0 (разрешено коммерческое использование).

#RightWayUp #ComputerVision #MachineLearning #DINOv2 #AI #Python #ONNX #CoreML #ImageProcessing #DevTools #OpenSource

📱Ссылка на репозиторий:
https://github.com/ortusaitech/rightwayup
Please open Telegram to view this post
VIEW IN TELEGRAM
⚡22
📱Flowfile.

Flowfile
- это инструмент для визуального построения ETL-пайплайнов, который компилируется в высокопроизводительный код на Polars.

Главная идея проекта — стереть грань между визуальным no-code/low-code и классической разработкой: визуальный холст (canvas) с нодами и Python-код являются двумя синхронными представлениями одного и того же графа вычислений.

Flowfile работает без тяжелых кластеров (вроде Apache Spark): все преобразования выполняются in-process на базе Polars, утилизируя ресурсы одной машины на максимум.

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

🔘Холст + Код (Dual-Mode):

✔️49 готовых типов узлов: джойны, нечеткое сопоставление (fuzzy matching), сводные таблицы (pivot), оконные функции, агрегации, древовидное разворачивание (bill-of-materials explosion) и ветвление.

✔️Редактор формул с 95 встроенными функциями.

✔️Узел произвольного Polars-кода для специфической логики, не покрытой стандартными блоками.

✔️Живое интерактивное превью данных (Live Data Preview) на каждом этапе пайплайна.

🔤Генерация чистого Python-кода: Вы можете быстро спроектировать логику визуально, а затем экспортировать её в лаконичный независимый скрипт на чистом Polars (import polars as pl) без необходимости тащить Flowfile на прод. Графы сохраняются в человекочитаемом YAML для версионирования в Git.

🔤Встроенный AI-ассистент: Позволяет генерировать и модифицировать структуру пайплайна прямо на холсте по текстовому описанию задачи (поддерживаются ключи OpenAI, Anthropic, Google, Groq, OpenRouter или локальная Ollama).

🔤Каталог данных на Delta Lake и SQL: Встроенный каталог таблиц с поддержкой версионирования, Time Travel и предикатного пушдауна (pushdown) в виртуальных таблицах. Для исследовательской работы есть встроенный SQL-редактор (Polars SQLContext) и модуль визуализации графиков Graphic Walker (аналог Tableau).

🔤Источники и коннекторы: Локальные файлы (CSV, Parquet, Excel, JSON), СУБД (PostgreSQL, DuckDB, MySQL, SQLite, SQL Server), облачные хранилища (S3, GCS, ADLS с поддержкой Delta Lake и Iceberg на чтение), Kafka (consumer) и внешние REST API.

🔤Запуск в любом окружении:

✔️В браузере: мгновенная работа через WebAssembly / Pyodide на demo.flowfile.org без установки и сервера;

✔️Локально на ноутбуке: установка в одну команду через pip или готовые десктопные приложения (Tauri);

✔️В команде: развертывание через Docker Compose с авторизацией, ролями пользователей, общим каталогом, планировщиком задач (scheduler) и изолированными Jupyter-подобными Python-кернелами.

💻Пример кода на Python:

Вы можете описать пайплайн кодом через API в стиле Polars и в один вызов открыть его в визуальном редакторе:

import flowfile as ff
from flowfile import col, open_graph_in_editor

# Загрузка и трансформация данных
df = ff.from_dict({
"category": ["A", "B", "A", "C", "B"],
"value": [100, 200, 150, 300, 250]
})

result = (
df.filter(col("value") > 150)
.with_columns((col("value") * 2).alias("double_value"))
.group_by("category")
.agg(col("value").sum().alias("total"))
)

# Открытие собранного графа в визуальном интерфейсе
open_graph_in_editor(result.flow_graph)


🚀Быстрый запуск:

Установка и запуск UI на локальной машине (Python 3.10–3.13):

pip install Flowfile
flowfile run ui


Командный запуск в Docker Compose:


git clone https://github.com/edwardvaneechoud/Flowfile.git
cd Flowfile
docker compose up -d
# Веб-интерфейс будет доступен по адресу http://localhost:8080


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

#Flowfile #Python #Polars #ETL #DataEngineering #DataScience #SQL #DeltaLake #DuckDB #OpenSource #DevTools #DataPipelines

📱Ссылка на репозиторий:
https://github.com/Edwardvaneechoud/Flowfile
Please open Telegram to view this post
VIEW IN TELEGRAM
👍41
📱TurboPython.

TurboPython
- это опережающий (AOT) компилятор, транслирующий статически типизированный Python через современный C++23 напрямую в автономный нативный бинарник без интерпретатора, сборщика мусора и GIL.

В отличие от Cython, mypyc или Nuitka, сгенерированный код вообще не опирается на рантайм CPython и подсчет ссылок, а в отличие от Codon и Shed Skin — не использует сторонний сборщик мусора (GC). Памятью управляет строгая модель владения (Ownership) в стиле Rust, проверяемая прямо во время компиляции. При этом исходные файлы остаются синтаксически валидным кодом на Python, понятным привычным линтерам, IDE и кодинг-агентам.

🔹Главные особенности:

🔘Никакого CPython, GC и GIL: На выходе получается чистый нативный C++23-бинарник. Нет оверхеда на виртуальную машину, трассирующий сборщик мусора или Reference Counting, а для критических участков доступна директива @noalloc.

🔘Модель владения (Ownership Model): Каждое значение имеет ровно одного владельца (стековый фрейм, поле класса или контейнер). Передача владения оформляется явно через Own[T], а неявные копирования данных подсвечиваются компилятором еще до запуска программы.

🔘Настоящий параллелизм с проверкой типов: Многопоточный запуск (spawn) нативных потоков ОС без ограничений GIL. Компилятор на этапе сборки статически проверяет контракты Send и Sync, предотвращая состояние гонки (data races). Доступ к разделяемым ресурсам идет через знакомые примитивы: Arc[Mutex[T]], RwLock, атомики и каналы.

🔘Фиксированные типы и контроль переполнений: Введены нативные целочисленные типы (например, int32), литералы и функция len() по умолчанию 32-битные с проверкой переполнения на аппаратном уровне (ошибка вместо тихого заворачивания значения). Стандартный int остается длинной арифметикой произвольной точности.

🔘Полная интеграция с экосистемой C/C++: Легко линкуется с внешними C/C++ библиотеками (@native, @export(binding="C")), генерирует чистый C++ код с готовыми CMakeLists.txt и умеет компилироваться как в автономные бинарники, так и в нативные модули расширения для стандартного CPython.

💻Пример кода:

from dataclasses import dataclass
from tpy import Own, int32

@dataclass
class Stats:
count: int32
total: int32
longest: int32

# Функция передает владение объектом Stats вызывающей стороне
def measure(words: list[str]) -> Own[Stats]:
total, longest = 0, 0
for w in words:
total += len(w)
longest = max(longest, len(w))
return Stats(len(words), total, longest)

s = measure("the quick brown fox jumps over the lazy dog".split())
print(s.count, s.total, s.longest)


🚀Сборка и запуск:

Установка компилятора (требуется Python 3.12+ и Clang 19+ / GCC 13+):

# Установка с бандлом компилятора Zig
pip install "tpy-lang[bundled]"


Компиляция и запуск:


# Запуск через JIT-подобный вызов или REPL
tpy stats.py

# Сборка в автономный нативный бинарный файл
tpyc -b stats.py
./__tpyc__/stats.d/release/stats

# Просмотр сгенерированного чистого C++ кода
tpy --dump-code stats.py


📌Статус проекта: Ранняя разработка (pre-1.0). Поддерживаются Linux и macOS (для Windows рекомендуется WSL). Лицензия — Apache 2.0 with LLVM Exceptions (позволяет распространять собранные бинарники без лицензионных ограничений).

#TurboPython #Python #Cpp #Compiler #AOT #Performance #Rust #NoGIL #Multithreading #DevTools #OpenSource #SoftwareEngineering

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