GraphDash est un tableau de bord en ligne construit sur les graphiques et leurs métadonnées. Par exemple, si vous avez deux graphiques dans un répertoire:
$ cd default_graph_dir
$ ls
graph.svg graph2.svgEnsuite, vous pouvez créer deux fichiers de métadonnées à l'aide du format YAML, où vous pouvez configurer comment les graphiques seront affichés:
$ 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 'Vous pouvez ensuite démarrer le tableau de bord graphique. Vous obtiendrez une belle interface Web affichant vos graphiques et une zone de recherche avec assortiment automatique. Vous pouvez facilement naviguer et partager vos graphiques.
$ GraphDash --root .
* Running on http://0.0.0.0:5555/ (Press CTRL+C to quit)Clone et installation (dans l'espace utilisateur):
git clone https://github.com/AmadeusITGroup/graphdash.git
cd graphdash
pip install --user .Ou utilisez le package Python:
pip install --user graphdash Pour l'installation de l'espace utilisateur, assurez-vous que votre $PATH comprend ~/.local/bin .
$ GraphDash -r default_graph_dir
* Running on http://0.0.0.0:5555/ (Press CTRL+C to quit) Le tableau de bord peut être configuré avec un fichier de configuration YAML et l'option -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)Vous pouvez générer un modèle de fichier de configuration:
$ GraphDash -C template.yaml Si vous n'êtes pas déjà installé sur votre machine, installez Gunicorn :
pip install --user gunicorn setproctitle # on Fedora you may need to install libffi-devel before Puisque vous pouvez importer le WebApp via graphdash:app , vous pouvez le servir avec Gunicorn :
gunicorn -b 0.0.0.0:8888 --pid server.pid graphdash:app Le fichier de configuration du WebApp peut être défini avec la variable d'environnement CONF . Avec Gunicorn , vous pouvez transmettre des variables d'environnement aux travailleurs avec --env :
gunicorn -b 0.0.0.0:8888 --pid server.pid --env CONF=docs/graphdash.yaml graphdash:app Mais vous ne devriez pas utiliser ces commandes vous-même, c'est à cela que sert GraphDashManage !
GraphDashManage est utilisé pour start , stop , restart les instances de Gunicorn servant graphdash:app . Il a besoin d'un fichier de configuration dans le répertoire actuel:
$ cat settings.sh
ALL_MODES=(
[ ' prod ' ]= " docs/graphdash.yaml "
[ ' test ' ]= " docs/graphdash.yaml "
)
ALL_PORTS=(
[ ' prod ' ]=1234
[ ' test ' ]=5678
)
WORKERS=3 Ensuite, vous pouvez gérer plusieurs instances de GraphDash à l'aide Gunicorn avec:
$ 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
...Vous pouvez générer un modèle de paramètres:
$ GraphDashManage template > template.sh # to be moved to settings.sh Entrées possibles (tout est facultatif):
root : le répertoire racine des graphiquesfamilies : Path to the Families Metadata File (Facultatif)title : le titre du webappsubtitle : le sous-titre du webappplaceholder : le texte par défaut dans le champ de rechercheheader : un message facultatif en haut (syntaxe Markdown)footer : un message facultatif en bas (syntaxe Markdown)showfamilynumbers : un booléen pour basculer la numérotation familiale (la valeur par défaut est vraie)showgraphnumbers : une numérotation booléenne pour basculer les graphiques (par défaut est vrai)theme : Modifier le thème CSS (la valeur par défaut est sombre)keep : la proportion de mots communs conservés pour la complétion automatiquelogfile : modifier le fichier journal par défaut du webAppraw : Lors du chargement, recherchez tous les graphiques et ignorez les métadonnéesverbose : un booléen indiquant la verbosité lors du chargement de l'applicationdebug : mode de débogage (Activer Grunt Liveload, activer le mode de débogage FLASK)headless : mode sans tête (seule la recherche est disponible, aucune page n'est rendue)port : Lorsqu'il est lancé avec Flask Development Server uniquement, le port Plusieurs attributs sont pris en charge:
name : le chemin vers le graphiquetitle : Titre du graphique, recommandé à des fins d'affichage (Syntaxe Markdown)family : la sous-section dans laquelle le graphique estindex : une liste facultative des mots clés décrivant le graphique (utile pour la fonction de recherche)text : une description facultative du graphique (syntaxe Markdown)pretext : un message facultatif apparaissant avant le graphique (syntaxe de Markdown)file : chemin facultatif vers les données brutesexport : chemin facultatif vers le graphique exportable (par exemple, un fichier PNG)rank : entier, valeur facultative utilisée pour modifier l'ordre des graphiques (par défaut utilise des titres)showtitle : un booléen pour basculer l'affichage du titre pour le graphique (par défaut est faux)labels : une liste d'étiquettes (comme 'new' ) qui sera rendue dans l'interface utilisateur sous forme de cercles colorésother : Autres métadonnées non utilisées par GraphDash , mais peut être nécessaire par d'autres choses en lisant les métadonnées Notez que si l'attribut name est manquant, le graphique ne sera pas affiché et le texte sera affiché de toute façon, comme une entrée de blog.
Vous pouvez mettre un fichier .FAMILIES.yaml à la racine du répertoire des graphiques. Ce fichier peut contenir des métadonnées pour les familles. Ce devrait être une liste YAML:
- family : chairs
rank : 0
- family : tables
rank : 1
text : This is a description
alias : This text will appear instead of "tables"
labels : newChaque élément de la liste doit être un dict contenant:
family : La famille a envisagérank : entier, valeur facultative utilisée pour modifier l'ordre des familles (par défaut utilise le nom de famille)text : une description facultative de la famille (Syntaxe Markdown)alias : un nom facultatif qui peut être plus long que celui de l'URL (utile pour construire de belles URL)labels : une liste d'étiquettes (comme new ) qui seront rendues dans l'interface utilisateur sous forme de cercles colorés Les étiquettes disponibles sont new , update , bugfix , warning , error , ongoing , obsolete . Vous pouvez donner d'autres étiquettes qui seront rendues avec des couleurs par défaut. Pour la personnalisation, vous pouvez spécifier vos propres étiquettes avec une syntaxe de dict:
labels :
- name : newlabel
color : white
text_color : black
text : " NEW LABEL "
tooltip : null Si vous souhaitez contribuer, vous avez besoin Grunt pour générer de nouveaux fichiers CSS / JS à partir de fichiers Sass / Coffee Source.
npm install --no-bin-links # may need to repeat
grunt Le débogage peut être réalisé avec des fichiers de carte source pour le navigateur les soutenant dans leurs outils de débogage. Sinon, le Gruntfile.js permet une option pour générer des actifs non mindifiés.
grunt --dev Avec le mode debug activé, Grunt utilisera le mécanisme LiveLeload pour recharger le navigateur si un fichier a changé (et le mode de débogage FLASK rechargera également le serveur).
GraphDash --debug & # or python -m graphdash
grunt watch Si vous avez utilisé Gunicorn avec un fichier PID, Grunt le rechargera automatiquement si des fichiers Python changent.
gunicorn -b 0.0.0.0:8888 --pid server.pid graphdash:app &
grunt watch Vous pouvez utiliser des packages tox Build et exécuter des tests.
tox