GraphDash é um painel baseado na Web criado em gráficos e seus metadados. Por exemplo, se você tiver dois gráficos em um diretório:
$ cd default_graph_dir
$ ls
graph.svg graph2.svgEm seguida, você pode criar dois arquivos de metadados usando o formato YAML, onde você pode configurar como os gráficos serão exibidos:
$ 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 'Você pode iniciar o painel do gráfico. Você receberá uma boa interface da Web exibindo seus gráficos e uma caixa de pesquisa com conclusão automática. Você pode navegar facilmente e compartilhar seus gráficos.
$ GraphDash --root .
* Running on http://0.0.0.0:5555/ (Press CTRL+C to quit)Clone e instale (no espaço do usuário):
git clone https://github.com/AmadeusITGroup/graphdash.git
cd graphdash
pip install --user .Ou use o pacote Python:
pip install --user graphdash Para a instalação do espaço do usuário, verifique se o seu $PATH inclui ~/.local/bin .
$ GraphDash -r default_graph_dir
* Running on http://0.0.0.0:5555/ (Press CTRL+C to quit) O painel pode ser configurado com um arquivo de configuração YAML e a opção -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)Você pode gerar um modelo de arquivo de configuração:
$ GraphDash -C template.yaml Se ainda não estiver instalado em sua máquina, instale Gunicorn :
pip install --user gunicorn setproctitle # on Fedora you may need to install libffi-devel before Como você pode importar o WebApp através graphdash:app , você pode servir com Gunicorn :
gunicorn -b 0.0.0.0:8888 --pid server.pid graphdash:app O arquivo de configuração do WebApp pode ser definido com a variável de ambiente CONF . Com Gunicorn , você pode passar variáveis de ambiente para os trabalhadores com --env :
gunicorn -b 0.0.0.0:8888 --pid server.pid --env CONF=docs/graphdash.yaml graphdash:app Mas você não deve usar esses comandos, é para isso que serve GraphDashManage !
GraphDashManage é usado para start , stop , restart as instâncias de Gunicorn Serving graphdash:app . Ele precisa de um arquivo de configuração no diretório atual:
$ cat settings.sh
ALL_MODES=(
[ ' prod ' ]= " docs/graphdash.yaml "
[ ' test ' ]= " docs/graphdash.yaml "
)
ALL_PORTS=(
[ ' prod ' ]=1234
[ ' test ' ]=5678
)
WORKERS=3 Em seguida, você pode gerenciar várias instâncias de GraphDash usando Gunicorn com:
$ 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
...Você pode gerar um modelo de configurações:
$ GraphDashManage template > template.sh # to be moved to settings.sh Possíveis entradas (tudo é opcional):
root : o diretório raiz dos gráficosfamilies : Caminho para o arquivo de metadados das famílias (opcional)title : o título do webAppsubtitle : a legenda do webAppplaceholder : o texto padrão no campo de pesquisaheader : Uma mensagem opcional na parte superior (sintaxe de Markdown)footer : Uma mensagem opcional na parte inferior (sintaxe de Markdown)showfamilynumbers : um booleano para alternar a numeração da família (o padrão é verdadeiro)showgraphnumbers : um booleano para alternar a numeração de gráficos (o padrão é verdadeiro)theme : Alterar o tema CSS (o padrão é escuro)keep : a proporção de palavras comuns mantidas para conclusão automáticalogfile : Alterar o arquivo de log padrão do WebAppraw : Ao carregar, procure todos os gráficos e ignore os metadadosverbose : um booleano indicando verbosidade ao carregar o aplicativodebug : Modo de depuração (Ativar Grunt Livereload, Ativar modo de depuração de frascos)headless : Modo sem cabeça (apenas a pesquisa está disponível, nenhuma página é renderizada)port : Quando lançado apenas com o Flask Development Server, porta Vários atributos são suportados:
name : o caminho para o gráficotitle : Título do gráfico, recomendado para fins de exibição (sintaxe de Markdown)family : a subseção na qual o gráfico éindex : Uma lista opcional de palavras -chave que descrevem o gráfico (útil para o recurso de pesquisa)text : Uma descrição opcional do gráfico (sintaxe de Markdown)pretext : Uma mensagem opcional aparecendo antes do gráfico (sintaxe de Markdown)file : caminho opcional para os dados brutosexport : caminho opcional para o gráfico exportável (por exemplo, um arquivo PNG)rank : Inteiro, valor opcional usado para alterar a ordem dos gráficos (o padrão usa títulos)showtitle : um booleano para alternar a exibição do título para o gráfico (o padrão é falso)labels : uma lista de rótulos (como 'new' ) que serão renderizados na interface do usuário como círculos coloridosother : outros metadados não usados pelo GraphDash , mas podem ser necessários por outras coisas que leem os metadados Observe que, se o atributo name estiver faltando, o gráfico não será mostrado e o texto será exibido de qualquer maneira, como uma entrada no blog.
Você pode colocar um arquivo .FAMILIES.yaml na raiz do diretório de gráficos. Este arquivo pode conter metadados para famílias. Deve ser uma lista da YAML:
- family : chairs
rank : 0
- family : tables
rank : 1
text : This is a description
alias : This text will appear instead of "tables"
labels : newCada elemento da lista deve ser um ditado contendo:
family : a família consideradarank : Inteiro, valor opcional usado para alterar a ordem das famílias (o padrão usa o nome da família)text : Uma descrição opcional da família (sintaxe de Markdown)alias : um nome opcional que pode ser mais longo que o do URL (útil para construir URLs agradáveis)labels : uma lista de rótulos (como new ) que serão renderizados na interface do usuário como círculos coloridos Os rótulos disponíveis são new , update , bugfix , warning , error , ongoing , obsolete . Você pode dar outros rótulos que serão renderizados com as cores dos padrões. Para personalização, você pode especificar seus próprios rótulos com uma sintaxe do dict:
labels :
- name : newlabel
color : white
text_color : black
text : " NEW LABEL "
tooltip : null Se você deseja contribuir, precisará Grunt para gerar novos arquivos CSS/JS a partir de arquivos de origem SASS/Coffee.
npm install --no-bin-links # may need to repeat
grunt A depuração pode ser feita com os arquivos de mapa de origem para o navegador que os suportam em suas ferramentas de depuração. Caso contrário, o Gruntfile.js permite uma opção para gerar ativos não minificados.
grunt --dev Com o modo debug ativado, o Grunt usará o mecanismo do LiveLOAD para recarregar o navegador se algum arquivo tiver alterado (e o modo de depuração do Flask também recarregará o servidor).
GraphDash --debug & # or python -m graphdash
grunt watch Se você usou Gunicorn com um arquivo PID, o Grunt o recarregará automaticamente se algum arquivo python mudar.
gunicorn -b 0.0.0.0:8888 --pid server.pid graphdash:app &
grunt watch Você pode usar pacotes de criação tox e executar testes.
tox