The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



Индекс форумов
Составление сообщения

Исходное сообщение
"Выпуск Python-библиотек Bind.py и RichConsole.py"
Отправлено opennews, 30-Май-17 01:59 
Вышла бета-версия библиотеки bind.py (https://github.com/KOLANICH/bind.py), ускоряющей функции, использующие замкнутые переменные, через модификацию их байт-кода. Основной сценарий использования - ускорение программно-сгенерированных функций, например в метаклассах, что позволяет иметь красивый усложнённый код почти без уменьшения производительности во время исполнения, ценой некоторых затрат на инициализацию.  


Синтетический тест (255 переменных) показал 15% ускорение для замкнутых переменных и 30% для глобальных. Ускорение достигается путём перемещения переменных в константы (проверки, что переменная действительно константа не проводится, будьте аккуратны). Функция допускает использование в качестве декоратора, поддерживается как передача словаря, так и kwargs-синтаксис.

Также доступна (https://github.com/KOLANICH/RichConsole)   python-библиотека RichConsole для вывода форматированного текста на консоль. Библиотека позволяет выводить в консоль текст, отформатированный с помощью управляющих последовательностей. Вручную это делать неудобно, так как управляющие последовательности имеют эффект на все последующие символы, т.е. необходимо сбрасывать и восстанавливать состояние в зависимости от текущего и желаемого. Начиная с уровня вложенности 3 это приводит к проблемам в архитектуре программы, препятствуя модуляризации.


Данная библиотека позволяет решить эту проблему. Желаемая разметка задаётся в виде ориентированного ациклического графа (обобщение дерева, позволяющее повторно использовать вершины при условии, что это не создаёт циклов), в котором листьями являются строки. В таком виде вывод обрабатывается в программе и рендерится в строку перед отправкой на вывод. При рендеринге происходит обход графа в глубину, применение и откат изменений, создание последовательностей диффов, конвертация в последовательность управляющих последовательностей и оптимизация полученной последовательности с целью минимизации выводимых данных.


URL: https://github.com/KOLANICH/bind.py
Новость: http://www.opennet.ru/opennews/art.shtml?num=46617

 

Ваше сообщение
Имя*:
EMail:
Для отправки ответов на email укажите знак ! перед адресом, например, !user@host.ru (!! - не показывать email).
Более тонкая настройка отправки ответов производится в профиле зарегистрированного участника форума.
Заголовок*:
Сообщение*:
 
При общении не допускается: неуважительное отношение к собеседнику, хамство, унизительное обращение, ненормативная лексика, переход на личности, агрессивное поведение, обесценивание собеседника, провоцирование флейма голословными и заведомо ложными заявлениями. Не отвечайте на сообщения, явно нарушающие правила - удаляются не только сами нарушения, но и все ответы на них. Лог модерирования.



Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру