GraphDash es un tablero basado en la web basado en gráficos y sus metadatos. Por ejemplo, si tiene dos gráficos en un directorio:
$ cd default_graph_dir
$ ls
graph.svg graph2.svgLuego puede crear dos archivos de metadatos utilizando el formato YAML, donde puede configurar cómo se mostrarán los gráficos:
$ 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 'Luego puede iniciar el tablero de gráficos. Obtendrá una buena interfaz web que muestra sus gráficos y un cuadro de búsqueda con Autocompletion. Puede navegar fácilmente y compartir sus gráficos.
$ GraphDash --root .
* Running on http://0.0.0.0:5555/ (Press CTRL+C to quit)Clon e instalar (en espacio de usuario):
git clone https://github.com/AmadeusITGroup/graphdash.git
cd graphdash
pip install --user .O use el paquete Python:
pip install --user graphdash Para la instalación del espacio de usuario, asegúrese de que su $PATH incluya ~/.local/bin .
$ GraphDash -r default_graph_dir
* Running on http://0.0.0.0:5555/ (Press CTRL+C to quit) El tablero se puede configurar con un archivo de configuración YAML y la opción -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)Puede generar una plantilla de archivo de configuración:
$ GraphDash -C template.yaml Si aún no está instalado en su máquina, instale Gunicorn :
pip install --user gunicorn setproctitle # on Fedora you may need to install libffi-devel before Como puede importar la aplicación web a través de graphdash:app , puede servirla con Gunicorn :
gunicorn -b 0.0.0.0:8888 --pid server.pid graphdash:app El archivo de configuración de la aplicación web se puede establecer con la variable de entorno CONF . Con Gunicorn , puede pasar variables de entorno a los trabajadores con --env :
gunicorn -b 0.0.0.0:8888 --pid server.pid --env CONF=docs/graphdash.yaml graphdash:app ¡Pero no debe usar estos comandos usted mismo, para eso es para lo que está GraphDashManage !
GraphDashManage se usa para start , stop , restart las instancias de Gunicorn Siring graphdash:app . Necesita un archivo de configuración en el directorio actual:
$ cat settings.sh
ALL_MODES=(
[ ' prod ' ]= " docs/graphdash.yaml "
[ ' test ' ]= " docs/graphdash.yaml "
)
ALL_PORTS=(
[ ' prod ' ]=1234
[ ' test ' ]=5678
)
WORKERS=3 Luego puede administrar múltiples instancias de GraphDash usando Gunicorn con:
$ 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
...Puede generar una plantilla de configuración:
$ GraphDashManage template > template.sh # to be moved to settings.sh Posibles entradas (todo es opcional):
root : el directorio raíz de los gráficosfamilies : el archivo de metadatos de Path to Families (opcional)title : El título de la aplicación websubtitle : el subtítulo de la aplicación webplaceholder : el texto predeterminado en el campo de búsquedaheader : un mensaje opcional en la parte superior (sintaxis de Markdown)footer : un mensaje opcional en la parte inferior (sintaxis de Markdown)showfamilynumbers : un booleano para alternar la numeración familiar (el valor predeterminado es verdadero)showgraphnumbers : un booleano para alternar la numeración de gráficos (el valor predeterminado es verdadero)theme : Cambiar el tema CSS (el valor predeterminado es oscuro)keep : la proporción de palabras comunes guardadas para el autocompletologfile : Cambie el archivo de registro predeterminado de WebAppraw : al cargar, busque todos los gráficos e ignore los metadatosverbose : un booleano que indica verbosidad al cargar la aplicacióndebug : Modo de depuración (habilitar Grunt Livereload, Habilitar el modo de depuración Flask)headless : modo sin cabeza (solo la búsqueda está disponible, no se representa ninguna página)port : cuando se lanzó solo con Flask Development Server, puerto Se admiten varios atributos:
name : La ruta al gráficotitle : Título del gráfico, recomendado para fines de visualización (sintaxis de Markdown)family : la subsección en la que el gráfico esindex : una lista opcional de palabras clave que describen el gráfico (útil para la función de búsqueda)text : una descripción opcional del gráfico (sintaxis de Markdown)pretext : un mensaje opcional que aparece antes del gráfico (sintaxis de Markdown)file : ruta opcional a los datos sin procesarexport : ruta opcional al gráfico exportable (por ejemplo, un archivo PNG)rank : entero, valor opcional utilizado para cambiar el orden de gráficos (predeterminado usa títulos)showtitle : un booleano para alternar la pantalla de título para el gráfico (predeterminado es falso)labels : una lista de etiquetas (como 'new' ) que se representarán en la interfaz de usuario como círculos coloreadosother : Otros metadatos no utilizados por GraphDash , pero pueden ser necesarios por otras cosas que leen los metadatos Tenga en cuenta que si falta el atributo name , no se mostrará el gráfico y el texto se mostrará de todos modos, como una entrada de blog.
Puede poner un archivo .FAMILIES.yaml en la raíz del directorio de gráficos. Este archivo puede contener metadatos para familias. Debería ser una lista de 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 de la lista debe ser un dict que contenga:
family : la familia considerórank : entero, valor opcional utilizado para cambiar el orden de las familias (el valor predeterminado utiliza el nombre de la familia)text : una descripción opcional de la familia (sintaxis de Markdown)alias : un nombre opcional que puede ser más largo que el de la URL (útil para construir URL agradables)labels : una lista de etiquetas (como new ) que se representarán en la interfaz de usuario como círculos de colores Las etiquetas disponibles son new , update , bugfix , warning , error , ongoing , obsolete . Puede dar otras etiquetas que se representarán con los colores predeterminados. Para la personalización, puede especificar sus propias etiquetas con una sintaxis de dict:
labels :
- name : newlabel
color : white
text_color : black
text : " NEW LABEL "
tooltip : null Si desea contribuir, necesita Grunt para generar nuevos archivos CSS/JS a partir de archivos de origen SASS/Coffee.
npm install --no-bin-links # may need to repeat
grunt La depuración se puede hacer con archivos de mapa fuente para el navegador que los admite en sus herramientas de depuración. Si no, el Gruntfile.js permite una opción para generar activos no minificados.
grunt --dev Con el modo debug habilitado, Grunt usará el mecanismo de Livereload para recargar el navegador si algún archivo ha cambiado (y el modo de depuración frasco también volverá a cargar el servidor).
GraphDash --debug & # or python -m graphdash
grunt watch Si usó Gunicorn con un archivo PID, Grunt lo recargará automáticamente si cualquier archivo de Python cambia.
gunicorn -b 0.0.0.0:8888 --pid server.pid graphdash:app &
grunt watch Puede usar paquetes de compilación tox y ejecutar pruebas.
tox