The OpenNET Project / Index page

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

29.05.2017 21:15  Выпуск Python-библиотек Bind.py и RichConsole.py

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

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

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

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

  1. Главная ссылка к новости (https://github.com/KOLANICH/bi...)
Автор новости: KOLANICH
Тип: Программы
Ключевые слова: python
При перепечатке указание ссылки на opennet.ru обязательно
Обсуждение Линейный вид | Ajax | Показать все | RSS
 
  • 1.2, anonymous yet another, 07:28, 30/05/2017 [ответить] [смотреть все]
  • +2 +/
    > ... ориентированного ациклического графа (обобщение дерева, позволяющее повторно использовать вершины при условии, что это не создаёт циклов),

    Неожиданно-оригинальное определение ациклического графа.

     
     
  • 2.3, Аноним, 08:02, 30/05/2017 [^] [ответить] [смотреть все] [показать ветку]
  • +1 +/
    Цикличный обход ацикличного графа. Это же великолепно :)
     
  • 1.4, Хорошийкомп, 08:55, 30/05/2017 [ответить] [смотреть все]
  • +1 +/
    >Ускорение достигается путём перемещения переменных в константы (проверки, что >переменная действительно константа не проводится, будьте аккуратны)

    Каких только пулеметов не наизобретают люди, чтоб только не учить C++

     
     
  • 2.5, KOLANICH, 09:44, 30/05/2017 [^] [ответить] [смотреть все] [показать ветку]
  • –1 +/
    Библиотека для питона чтобы оптимизировать код на питоне Написана была для лулз... весь текст скрыт [показать] [показать ветку]
     
     
  • 3.20, Led, 17:26, 30/05/2017 [^] [ответить] [смотреть все]  
  • –2 +/
    Так и сам питон написан для лулзов и троллинга ... весь текст скрыт [показать]
     
  • 3.22, myhand, 19:25, 30/05/2017 [^] [ответить] [смотреть все]  
  • +/
    > вернее для траллинга некоторых коментаторов

    За минрепы их, окаянных!


     
  • 1.6, KOLANICH, 09:52, 30/05/2017 [ответить] [смотреть все]  
  • +/
    > что позволяет иметь красивый усложнённый код

    В оригинале новости было "overиженеренный". Overинженеренный - на мой взгляд, это где многие обойдутся решением "в лоб", но где так не сделано. Но overиженеренный - не значит "усложнённый", такой код проще в поддержке и отладке.

     
     
  • 2.9, Аноним, 12:46, 30/05/2017 [^] [ответить] [смотреть все] [показать ветку]  
  • +1 +/
    Он по определению сложнее и в поддержке, и в отладке, так как использует лишние ... весь текст скрыт [показать] [показать ветку]
     
  • 2.12, Crazy Alex, 15:17, 30/05/2017 [^] [ответить] [смотреть все] [показать ветку]  
  • +1 +/
    В наиболее распространённом понимании - это именно переусложнённый код, неудобны... весь текст скрыт [показать] [показать ветку]
     
  • 1.7, Blind Vic, 10:29, 30/05/2017 [ответить] [смотреть все]  
  • +3 +/
    Теперь можно постить новости о своих проектах, beta-quality, just for fun?
     
     
  • 2.14, KOLANICH, 15:25, 30/05/2017 [^] [ответить] [смотреть все] [показать ветку]  
  • +/
    Вообще-то уже давно ... весь текст скрыт [показать] [показать ветку]
     
  • 1.10, Аноним, 13:36, 30/05/2017 [ответить] [смотреть все]  
  • –1 +/
    про ричконсол не написано под какие системы никс вин информацию не нашел н... весь текст скрыт [показать]
     
     
  • 2.13, KOLANICH, 15:24, 30/05/2017 [^] [ответить] [смотреть все] [показать ветку]  
  • –2 +/
    Любые Контрольные коды ecma - это фича эмулятора терминала, а не ОС В самой же... весь текст скрыт [показать] [показать ветку]
     
  • 1.15, Аноним, 16:53, 30/05/2017 [ответить] [смотреть все]  
  • +/
    Если ты сделал это не для лулзов то Сделай одолжение этому миру - удали эту х ... весь текст скрыт [показать]
     
     
  • 2.19, KOLANICH, 17:20, 30/05/2017 [^] [ответить] [смотреть все] [показать ветку]  
  • +/
    Если есть конструктивные замечания - на гитхаб или тут Нет - сам знаешь куда ... весь текст скрыт [показать] [показать ветку]
     
     
  • 3.23, myhand, 19:32, 30/05/2017 [^] [ответить] [смотреть все]  
  • +1 +/
    Интересно, а правилам русского языка вы не следуете тоже, по причине личного неу... весь текст скрыт [показать]
     
  • 3.25, Аноним, 21:32, 30/05/2017 [^] [ответить] [смотреть все]  
  • –1 +/
    Ты знаешь, да, есть замечания 100 кода - это гов о размером в 300 строк И, п... весь текст скрыт [показать]
     
     
  • 4.31, KOLANICH, 10:48, 31/05/2017 [^] [ответить] [смотреть все]  
  • –2 +/
    Толсто.
     
  • 1.16, myhand, 16:54, 30/05/2017 [ответить] [смотреть все]  
  • +/
    > Также доступна python-библиотека RichConsole для вывода форматированного текста на консоль.

    Я, конечно, извиняюсь, но разве curses выкинули из стандартной библиотеки?!

     
     
  • 2.17, KOLANICH, 17:14, 30/05/2017 [^] [ответить] [смотреть все] [показать ветку]  
  • –1 +/
    curses - для псевдографического интерфейса Я же делал приложение с консольным т... весь текст скрыт [показать] [показать ветку]
     
     
  • 3.21, myhand, 19:23, 30/05/2017 [^] [ответить] [смотреть все]  
  • +/
    Ви таки хотите сказать, что с ей я не могу текст в консольке раскрасить ... весь текст скрыт [показать]
     
     
  • 4.32, KOLANICH, 16:49, 01/06/2017 [^] [ответить] [смотреть все]  
  • –1 +/
    Можешь. Но с извращениями.
     
     
  • 5.33, myhand, 15:16, 04/06/2017 [^] [ответить] [смотреть все]  
  • +/
    > Можешь. Но с извращениями.

    Например, какими?

     
  • 2.18, Ordu, 17:16, 30/05/2017 [^] [ответить] [смотреть все] [показать ветку]  
  • +/
    Выкинули вряд ли, но он давно просится на выкидывание ncurses родом из 80-х, и ... весь текст скрыт [показать] [показать ветку]
     
     
  • 3.29, proud_anon, 07:09, 31/05/2017 [^] [ответить] [смотреть все]  
  • –1 +/
    "... возможности "красивого" вывода в консоль никому особо не нужны. А цветной текст выводить в консоль -- много ума не нужно... " откуда мамы таких аналитиков достают?
    Сидит крендель за ПК из ближайшего ашана и пребывает в полной уверенности что у всего остального человечества точно такая же железная конфигурация.
    $ echo $TERM
    dumb
    это про тебя
     
     
  • 4.30, Ordu, 08:43, 31/05/2017 [^] [ответить] [смотреть все]  
  • +/
    > "... возможности "красивого" вывода в консоль никому особо не нужны. А цветной
    > текст выводить в консоль -- много ума не нужно... " откуда
    > мамы таких аналитиков достают?
    > Сидит крендель за ПК из ближайшего ашана и пребывает в полной уверенности
    > что у всего остального человечества точно такая же железная конфигурация.
    > $ echo $TERM
    > dumb
    > это про тебя

    Хы. Ты точно когда показывал пальцем, не перепутал направление? Мне почему-то кажется, что ты не осилил прочитать мой коммент целиком, прежде чем лезть с критикой типа "демонстрация выдающихся знаний".

     

     Добавить комментарий
    Имя:
    E-Mail:
    Заголовок:
    Текст:


      Закладки на сайте
      Проследить за страницей
    Created 1996-2018 by Maxim Chirkov  
    ДобавитьРекламаВебмастеруГИД  
    Hosting by Ihor