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

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

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

py2many — это Python‑транспайлер, который автоматически преобразует Python‑код в Rust, C++, Go, Zig, Julia, Kotlin, Nim, Dart и другие статически типизированные языки.

🔹Зачем транспилировать Python:

🔘Производительность: Python удобен для разработки, но медленный в рантайме — компиляция в Rust/C++/Go даёт нативную скорость.

🔘Кроссплатформенность: один Python‑код → нативные приложения для мобильных, embedded‑систем и WebAssembly.

🔘Безопасность: верифицируете логику тестами на Python, потом транспилируете в Rust для memory safety.

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

pip install py2many

# Конвертация в Rust
py2many --rust tests/cases/fib.py

# Конвертация в C++
py2many --cpp tests/cases/fib.py

# Конвертация в Go/Kotlin/Julia/Nim/Dart
py2many --go/--kotlin/--julia/--nim/--dart tests/cases/fib.py


#python #transpiler #rust #cpp #golang #performance #py2many

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

imgui_bundle
- это мощный фреймворк для создания интерактивных приложений на Python и C++ под десктоп, мобильные устройства и веб.

Фреймворк поставляется по принципу «всё включено» (batteries included). В коробке уже есть всё необходимое: построение сложных графиков (2D и 3D), поддержка Markdown, редакторы нод (node editors), продвинутые инструменты для инспекции изображений и многое другое.

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

🔘Кроссплатформенность: Windows, macOS, Linux, iOS, Android и WebAssembly.

🔘Python & C++: API для обоих языков имеют очень схожую структуру, что делает перенос кода максимально простым.

🔘Богатая экосистема внутри: Сразу встроены Dear ImGui (основные виджеты), ImPlot / ImPlot3D, ImmVision, imgui-node-editor, ImGuizmo, файловые диалоги, спиннеры, переключатели и палитра команд.

🔘Удобные "запускаторы" (runners): Hello ImGui берет на себя работу с окнами, бэкендом, докингом и ассетами, а ImmApp позволяет активировать нужные аддоны в пару строк.

🔘Web-ready: С++ работает в браузере через Emscripten, а Python — через Pyodide (есть деплой через HTML-шаблоны).

🚀Как попробовать без установки?

На официальном сайте (imgui-bundle.pages.dev) доступны:

🔘Interactive Explorer — живой справочник и полноценное демо всех библиотек с возможностью просмотра исходников на С++ и Python.

🔘Playground — онлайн-песочница. Пишите код на Python и сразу видите графический результат прямо в браузере!

🔘DeepWiki — встроенный AI-ассистент, обученный на документации и исходниках проекта, который поможет быстро найти нужную функцию или решить проблему.

✅Хватит бороться с тяжеловесными GUI-библиотеками — просто берите и создавайте!

#Python #CPP #GUI #DearImGui #ImGuiBundle #WebAssembly #DevTools #CrossPlatform #Программирование

📱Ссылка на репозиторий:
https://github.com/pthom/imgui_bundle
Please open Telegram to view this post
VIEW IN TELEGRAM
1🔥4👍3
📱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
📱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
📱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