Я люблю Visidata и изначально хотел контрибьютить прямо в основной проект. Но процесс принятия изменений не всегда быстрый, а пользоваться улучшениями хотелось уже сейчас — и поделиться ими с другими. Поэтому я сделал форк под названием Visidata NG (new generation) и развиваю его параллельно, предлагая самые удачные изменения в основной репозиторий.

Пока что пакет нельзя установить через pip/brew и другие менеджеры — это решение для энтузиастов, готовых попробовать свежие фичи.

Что я добавил

  1. Подтверждение выхода на последнем уровне стека (q)
    Когда вы дошли до последней таблицы в стеке и нажимаете q, появляется предупреждение о закрытии приложения и потере несохранённых изменений. Я часто случайно завершал сессию и терял разметку — теперь это не так.

  2. Быстрый «процент от общего» по g+f
    Нажатие g+f добавляет новый столбец на основе текущего (если его тип int или float), в котором считается процент от общего. Забавно, что похожая механика есть в frequency table (гистограмма + проценты), но не было простого хоткея, чтобы сделать отдельный столбец — теперь есть.

  3. Форматирование валют по $ (тип столбца currency)
    При нажатии $ появляется окно выбора валюты, и столбец форматируется по её стандарту (префикс + значение + постфикс). Удобно, когда нужно быстро посчитать статистику и вставить её в красивую Markdown-таблицу.

  4. Быстрые форматы дат по @ (тип столбца date)
    При нажатии @ открывается окно выбора формата: datetime, date, month, year. Это ускоряет исследования — вместо длинных выражений всё делается в пару нажатий.

Планы

Дальше хочу углубиться в хранение и обработку данных: есть идеи о векторных преобразованиях, которые ускорят расчёты. Но сейчас я сфокусировался на практичных доработках, которые сам регулярно использую.

Как попробовать Visidata NG

  1. Клонируйте репозиторий:
    git clone https://github.com/denisotree/visidata-ng
    
  2. Перейдите в директорию и переключитесь на актуальную ветку:
    cd visidata-ng
    git checkout develop-ng
    
  3. Установите в editable-режиме:
    pip install -e .
    
  4. Бинарь установится в bin вашего текущего Python-окружения.

Нюансы установки

  • Если у вас установлен Visidata не через pip (например, brew, apt, pacman, и т. п.), версии могут конфликтовать — системную установку возможно придётся удалить.
  • Если Visidata был установлен через pip, моя версия подменит основную, так как использует ту же мета‑информацию пакета.

Обратная связь

Если у вас есть идеи, что ещё улучшить, или вы нашли ошибки — напишите мне (LinkedIn / Instagram / Telegram).