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

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

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

Archimedes — это open-source фреймворк на Python, созданный для того, чтобы переносить управляющие алгоритмы прямо на реальное оборудование. Он объединяет в себе моделирование, симуляцию, оптимизацию и генерацию C-кода — всё, что нужно для полного цикла разработки систем управления.

❓Что умеет Archimedes:

🔘NumPy-совместимый API с автоматическим выбором бэкенда.

🔘Быстрое выполнение вычислительных графов в скомпилированном C++.

🔘Автоматическое дифференцирование (forward & reverse mode, sparse).

🔘Поддержка плагин-решателей: ODE/DAE, root-finding, NLP.

🔘Генерация C-кода для embedded-устройств.

🔘JAX-подобные трансформации функций.

🔘PyTorch-стиль структур для параметров и моделей.

🐱Для кого Archimedes:

🔘Инженеры управления.

🔘Разработчики роботов.

🔘Специалисты по оптимизации.

🔘Разработчики embedded-софта.

🔘Исследователи динамических систем.

✅Если тебе нужно писать алгоритмы на Python и переносить их на железо без ручного переписывания — Archimedes закрывает эту проблему полностью.

#python #casadi #embedded #controlsystems #numerics #autodiff #opensource #archimedes #pythonlibrary #engineering #robotics #optimization #coding #tech

📱Ссылка на репозиторий:
https://pinetreelabs.github.io/archimedes/index.html
Please open Telegram to view this post
VIEW IN TELEGRAM
13👍2⚡1
📱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
📱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