Reviewed-on: #1 |
||
---|---|---|
calculators | ||
images | ||
lang | ||
tools | ||
.gitignore | ||
Makefile | ||
README.md | ||
model.yaml |
README.md
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 estCalcDB
, qui charge les fichiers YAML depuis la racine de ce dépôt. Une classLang
représente les différents langages, et présente quelques méthodes pour simplifier la traduction. Enfin, une fonctionrender()
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. Utilisezmake json
oumake json-min
et récupérez le fichier de sortie dansout
. -
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. Utilisezmake html-fr
oumake html-en
pour générer une page web autonome pour consulter le tableau, oumake index-fr
oumake 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 dossiersmall
a une image supplémentaireg35+.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 Pythoncalcdb
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.
- Compléter les icônes pixel art.