2021-04-17 15:35:23 +02:00
|
|
|
# Base de données des calculatrices CASIO
|
|
|
|
|
|
|
|
Ce dépôt contient des images, métadonnées et propriétés sur les calculatrices
|
|
|
|
graphiques et formelles CASIO modernes (la plupart des modèles après 2000). Ces
|
|
|
|
informations sont utilisées par l'index des calculatrices sur Planète Casio.
|
|
|
|
|
|
|
|
## Format
|
|
|
|
|
|
|
|
Chaque calculatrice est décrite par un fichier YAML dans le dossier
|
|
|
|
`calculators`. Les propriétés sont classées en catégories avec différents
|
|
|
|
champs dans chaque catégorie. Les champs peuvent être de types différents et
|
|
|
|
les valeurs autorisées sont au cas-par-cas, mais souvent on rencontre:
|
|
|
|
|
|
|
|
* Du texte brut : `full_name: "Graph 90+E"`
|
|
|
|
* Des booléens : `touch_screen: no`
|
|
|
|
* Des entiers: `default_cpu_frequency: 56000000 # Hz`
|
|
|
|
* Des énumérations : `audience: audience.high_school`
|
|
|
|
|
|
|
|
Les énumérations commençent toujours par le nom du champ. Beaucoup de champs
|
|
|
|
qui acceptent des énumérations acceptent aussi des booléens. Certains champs
|
|
|
|
acceptent des listes.
|
|
|
|
|
|
|
|
Le fichier `model.yaml` décrit le modèle des données : il liste toutes les
|
|
|
|
catégories, tous les champs, et toutes les calculatrices ; il donnes les unités
|
|
|
|
pour les champs numériques concernés ; et il attribute des scores aux valeurs
|
|
|
|
des champs pour permettre de faire des comparatifs.
|
|
|
|
|
|
|
|
Les valeurs peuvent contenir du Markdown ainsi que que des marqueurs de la
|
|
|
|
forme `@lang{...}` pour insérer du texte qui n'est visible que quand les
|
|
|
|
données sont affichées dans une certaine langue. Les fichiers `lang/*.yaml`
|
|
|
|
traduisent les noms des catégories, des champs, et les valeurs énumérées, et
|
|
|
|
`@lang{...}` n'est utilisé que pour les quelques passages de texte qui n'y
|
|
|
|
sont pas listés.
|
|
|
|
|
|
|
|
## Outils et utilisation
|
|
|
|
|
|
|
|
On peut soit utiliser la base directement en YAML, soit utiliser le module
|
|
|
|
Python `calcdb` dans le dossier `tools`. On peut aussi utiliser la version JSON
|
|
|
|
générée avec `tools/convert-json.py` si c'est plus pratique.
|
|
|
|
|
|
|
|
Trois outils sont fournis dans `tools` :
|
|
|
|
|
|
|
|
* La bibliothèque `calcdb.py` fournit de quoi manipuler la base en Python. La
|
|
|
|
classe principale est `CalcDB`, qui charge les fichiers YAML depuis la racine
|
|
|
|
de ce dépôt. Une class `Lang` représente les différents langages, et présente
|
|
|
|
quelques méthodes pour simplifier la traduction. Enfin, une fonction
|
|
|
|
`render()` implémente toutes les règles d'affichage pour fournir le texte à
|
|
|
|
afficher pour chaque valeur dans un tableau.
|
|
|
|
|
|
|
|
* Le script `convert-json.py` permet de convertir la base en JSON. Utilisez
|
|
|
|
`make json` ou `make json-min` et récupérez le fichier de sortie dans `out`.
|
|
|
|
|
|
|
|
* Le script `render-html.py` génère un tableau HTML avec les informations. Ce
|
|
|
|
tableau contient des attributs CSS et HTML permettant de le manipuler en
|
|
|
|
Javascript, et est notamment utilisé sur l'index des calculatrices de Planète
|
|
|
|
Casio. Utilisez `make html-fr` ou `make html-en` pour générer une page web
|
|
|
|
autonome pour consulter le tableau, ou `make index-fr` ou `make index-en`
|
|
|
|
pour générer la version utilisée sur Planète Casio.
|
|
|
|
|
|
|
|
## Résumé des dossiers
|
|
|
|
|
|
|
|
* `calculators`: Fichiers YAML avec les propriétés de tous les modèles.
|
|
|
|
* `lang`: Traduction des noms de catégories, champs, et valeurs énumérées.
|
|
|
|
* `model.yaml`: Liste de catégories, champs, calculatrices, et scores pour
|
|
|
|
toutes les valeurs énumérées comparables.
|
|
|
|
* `images`: Petites et grandes photos de tous les modèles, en JPG. Les grandes
|
|
|
|
photos sont généralements limitées à 1000 pixels de haut ; les petites sont
|
|
|
|
toutes fixées à 150 pixels de haut. Le dossier `small` a une image
|
|
|
|
supplémentaire `g35+.jpg` avec les deux générations de Graph 35+
|
|
|
|
côte-à-côte.
|
|
|
|
* `tools`: Scripts Python pour manipuler la base de données, et un module
|
|
|
|
Python `calcdb` réutilisable pour extraire efficacement des informations.
|
|
|
|
|
|
|
|
Ces dossiers ne sont pas indexés par le dépôt :
|
|
|
|
* `out`: Dossier de sortie pour tous les fichiers générés par les scripts.
|
|
|
|
|
|
|
|
## TODO
|
|
|
|
|
|
|
|
* Ajouter des liens vers les émulateurs.
|
|
|
|
* Télécharger les manuels et les héberger sur Planète Casio.
|
|
|
|
* Télécharger tous les OS updaters, les héberger sur Planète Casio, et les
|
|
|
|
ajouter à la base de données.
|
2021-04-17 17:55:53 +02:00
|
|
|
* Compléter les icônes pixel art.
|