GraphDash -это веб-панель, созданная на графиках и их метаданных. Например, если у вас есть два графика в каталоге:
$ cd default_graph_dir
$ ls
graph.svg graph2.svgЗатем вы можете создать два файла метаданных, используя формат YAML, где вы можете настроить отображение графиков:
$ cat graph.yaml
name: graph.svg
family: ' Category 1 '
title: ' *Real serious* graph '
text: |
The description
$ cat graph2.yaml
name: graph2.svg
family: ' Category 2 '
title: ' Another important graph 'Затем вы можете запустить панель панели графика. Вы получите хороший веб -интерфейс, отображающий ваши графики, и поле поиска с автозаполнением. Вы можете легко ориентироваться и поделиться своими графиками.
$ GraphDash --root .
* Running on http://0.0.0.0:5555/ (Press CTRL+C to quit)Клонировать и установить (в пространстве пользователя):
git clone https://github.com/AmadeusITGroup/graphdash.git
cd graphdash
pip install --user .Или используйте пакет Python:
pip install --user graphdash Для установки пользовательского пространства убедитесь, что ваш $PATH включает ~/.local/bin .
$ GraphDash -r default_graph_dir
* Running on http://0.0.0.0:5555/ (Press CTRL+C to quit) Панель инструментов может быть настроена с помощью файла конфигурации YAML и опции -c/--conf :
$ cat docs/graphdash.yaml
root: ../default_graph_dir
title: " Example of title ;) "
subtitle: " Example of subtitle "
$ GraphDash -c docs/graphdash.yaml
* Running on http://0.0.0.0:5555/ (Press CTRL+C to quit)Вы можете создать шаблон файла конфигурации:
$ GraphDash -C template.yaml Если еще не установлено на вашем компьютере, установите Gunicorn :
pip install --user gunicorn setproctitle # on Fedora you may need to install libffi-devel before Поскольку вы можете импортировать WebApp через graphdash:app , вы можете обслуживать его с Gunicorn :
gunicorn -b 0.0.0.0:8888 --pid server.pid graphdash:app Файл конфигурации веб -приложения может быть установлен с переменной среды CONF . С помощью Gunicorn , вы можете передать переменные окружающей среды работникам с --env :
gunicorn -b 0.0.0.0:8888 --pid server.pid --env CONF=docs/graphdash.yaml graphdash:app Но вы не должны использовать эти команды самостоятельно, для этого для GraphDashManage !
GraphDashManage используется для start , stop , restart экземпляров Gunicorn здания graphdash:app . Ему нужен файл конфигурации в текущем каталоге:
$ cat settings.sh
ALL_MODES=(
[ ' prod ' ]= " docs/graphdash.yaml "
[ ' test ' ]= " docs/graphdash.yaml "
)
ALL_PORTS=(
[ ' prod ' ]=1234
[ ' test ' ]=5678
)
WORKERS=3 Тогда вы можете управлять несколькими экземплярами GraphDash с помощью Gunicorn с:
$ GraphDashManage start prod
[INFO] Listening at: http://0.0.0.0:1234
[INFO] Booting worker with pid: 30403
[INFO] Booting worker with pid: 30404
[INFO] Booting worker with pid: 30405
$ GraphDashManage start test
[INFO] Listening at: http://0.0.0.0:5678
...Вы можете создать шаблон настроек:
$ GraphDashManage template > template.sh # to be moved to settings.sh Возможные записи (все необязательно):
root : корневой каталог графиковfamilies : Путь к файлу метаданных семей (необязательно)title : Название WebAppsubtitle : подзаголовок веб -приложенияplaceholder : текст по умолчанию в поле поискаheader : дополнительное сообщение вверху (синтаксис Markdown)footer : дополнительное сообщение внизу (синтаксис Markdown)showfamilynumbers : логическое число, чтобы переключить семейную нумерацию (по умолчанию верно)showgraphnumbers : логическое число для переключения графика (по умолчанию верно)theme : Изменить тему CSS (по умолчанию темная)keep : доля общих слов, хранящихся для автозаполненияlogfile : изменить файл журнала по умолчанию WebAppraw : при загрузке ищите все графики и игнорируйте метаданныеverbose : логический характер, указывающий на условности при загрузке примененияdebug : режим отладки (включить Grunt Livereload, включить режим отладки колбы)headless режим: без головы (доступен только поиск, страница не отображается)port : при запуске только с сервером разработки Flask, портом Поддерживается несколько атрибутов:
name : путь к графикуtitle : заголовок графика, рекомендуется для целей отображения (синтаксис Markdown)family : подраздел, в котором графикindex : необязательный список ключевых слов, описывающих график (полезно для функции поиска)text : необязательное описание графика (синтаксис Markdown)pretext : необязательное сообщение, появляющееся перед графом (синтаксис Markdown)file : необязательный путь к необработанным даннымexport : необязательный путь к экспортируемому графику (например, файл PNG)rank : целое число, необязательное значение, используемое для изменения порядка графиков (по умолчанию используется заголовки)showtitle : логический дисплей Toggle Teal для графика (по умолчанию FALSE)labels : список ярлыков (например 'new' ), который будет отображаться в пользовательском интерфейсе как цветные кругиother : другие метаданные, не используемые GraphDash , но могут понадобиться другим вещам, читающим метаданные Обратите внимание, что если атрибут name отсутствует, график не будет отображаться, и текст будет отображаться в любом случае, например, запись в блоге.
Вы можете поместить файл .FAMILIES.yaml в корне каталога графика. Этот файл может содержать метаданные для семей. Это должен быть список YAML:
- family : chairs
rank : 0
- family : tables
rank : 1
text : This is a description
alias : This text will appear instead of "tables"
labels : newКаждый элемент списка должен быть диктом, содержащим:
family : семья рассмотрелаrank : целое число, необязательное значение, используемое для изменения заказа семей (по умолчанию используется фамилия)text : необязательное описание семьи (синтаксис Markdown)alias : дополнительное имя, которое может быть длиннее, чем в URL (полезно для строительства хороших URL)labels : список ярлыков (например, new ), который будет отображаться в пользовательском интерфейсе как цветные круги Доступные этикетки являются new , update , bugfix , warning , error , ongoing , obsolete . Вы можете дать другие этикетки, которые будут отображаться с цветами по умолчанию. Для настройки вы можете указать свои собственные этикетки с помощью синтаксиса DICT:
labels :
- name : newlabel
color : white
text_color : black
text : " NEW LABEL "
tooltip : null Если вы хотите внести свой вклад, вам нужно Grunt , чтобы сгенерировать новые файлы CSS/JS из файлов SASS/Coffee Source.
npm install --no-bin-links # may need to repeat
grunt Отладка может быть сделана с помощью файлов исходной карты для браузера, поддерживающего их в их инструментах отладки. Если нет, то Gruntfile.js позволяет создать не минимифицированные активы.
grunt --dev С включенным режимом debug Grunt будет использовать механизм Livereload для перезагрузки браузера, если какой -либо файл изменился (и режим отладки Flask также будет перезагрузить сервер).
GraphDash --debug & # or python -m graphdash
grunt watch Если вы использовали Gunicorn с файлом PID, Grunt автоматически перезагрузит его, если какие -либо файлы Python изменятся.
gunicorn -b 0.0.0.0:8888 --pid server.pid graphdash:app &
grunt watch Вы можете использовать пакеты tox Build и запустить тесты.
tox