<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title><![CDATA[Linux Forum &mdash; Выпуск Python-библиотек Bind.py и RichConsole.py]]></title>
		<link>https://linuxforum.ru/viewtopic.php?id=39164</link>
		<atom:link href="https://linuxforum.ru/extern.php?action=feed&amp;tid=39164&amp;type=rss" rel="self" type="application/rss+xml" />
		<description><![CDATA[Недавние сообщения в теме «Выпуск Python-библиотек Bind.py и RichConsole.py».]]></description>
		<lastBuildDate>Mon, 29 May 2017 15:15:07 +0000</lastBuildDate>
		<generator>PunBB</generator>
		<item>
			<title><![CDATA[Выпуск Python-библиотек Bind.py и RichConsole.py]]></title>
			<link>https://linuxforum.ru/viewtopic.php?pid=455473#p455473</link>
			<description><![CDATA[<p><br />&nbsp; &nbsp; Вышла бета-версия библиотеки bind.py, ускоряющей функции, использующие замкнутые переменные, через модификацию их байт-кода. Основной сценарий использования - ускорение программно-сгенерированных функций, например в метаклассах, что позволяет иметь красивый усложнённый код почти без уменьшения производительности во время исполнения, ценой некоторых затрат на инициализацию.&nbsp; &nbsp; &nbsp; Синтетический тест (255 переменных) показал 15% ускорение для замкнутых переменных и 30% для глобальных. Ускорение достигается путём перемещения переменных в константы (проверки, что переменная действительно константа не проводится, будьте аккуратны). Функция допускает использование в качестве декоратора, поддерживается как передача словаря, так и kwargs-синтаксис.&nbsp; &nbsp; &nbsp; Также доступна&nbsp; &nbsp;python-библиотека RichConsole для вывода форматированного текста на консоль. Библиотека позволяет выводить в консоль текст, отформатированный с помощью управляющих последовательностей. Вручную это делать неудобно, так как управляющие последовательности имеют эффект на все последующие символы, т.е. необходимо сбрасывать и восстанавливать состояние в зависимости от текущего и желаемого. Начиная с уровня вложенности 3 это приводит к проблемам в архитектуре программы, препятствуя модуляризации.&nbsp; &nbsp; &nbsp;Данная библиотека позволяет решить эту проблему. Желаемая разметка задаётся в виде ориентированного ациклического графа (обобщение дерева, позволяющее повторно использовать вершины при условии, что это не создаёт циклов), в котором листьями являются строки. В таком виде вывод обрабатывается в программе и рендерится в строку перед отправкой на вывод. При рендеринге происходит обход графа в глубину, применение и откат изменений, создание последовательностей диффов, конвертация в последовательность управляющих последовательностей и оптимизация полученной последовательности с целью минимизации выводимых данных.&nbsp; <br />&nbsp; &nbsp; Источник: <strong>http://www.opennet.ru/opennews/art.shtml?num=46617</strong><br />&nbsp; &nbsp; </p>]]></description>
			<author><![CDATA[null@example.com (R2-D2)]]></author>
			<pubDate>Mon, 29 May 2017 15:15:07 +0000</pubDate>
			<guid>https://linuxforum.ru/viewtopic.php?pid=455473#p455473</guid>
		</item>
	</channel>
</rss>
