3 créer une variable implicite cachée
9 exists='False' hidden='True'>
12 si la variable n'existe pas, elle est crée avec une valeur par défaut
14 cela permet une alternative aux dépendances (pour ne pas installer un
17 coder ça exactement comme les hidden ou les disabled, avec une levée
18 d'exception supplémentaire comme filtre.
20 :date: 20 janvier 2012
22 coder un cache pour les options dont le propriétaire est "auto" ou "fill"
23 mettre ça dans un attribut `_cache` de l'option
25 mettre une contrainte de temps dans le cache
27 - pouvoir forcer le recalcul de toutes les variables (vider le cache)
28 globalement dans toute la config
30 - mettre une contrainte de temps donnée
31 expires = timestamp + deltatime
35 - lever une exception parlante (pour l'instant, c'est une "KeyError")
36 lorsqu'on essaye d'affecter quelque chose
44 alors que gc est un groupe
48 - faire un mode dégradé avec des warnings
49 - validations de longueur des maitres/esclaves ailleurs à sortir des requires
50 et à mettre dans des validators
54 - hide sur les sous-sous groupe : il faut que ça hide **tout** les sous-groupe
57 groupes `master/slaves`:
59 faut-il coder les multi avec des requires, ou bien simplement
60 un groupe avec comme variable le nom du groupe ?
62 auto, fill, obligatoire
68 faire une api du genre : `Option().is_master()`
69 pour cela, tester `if self.parent._name == self._name: return True`
71 - mettre un attribut `auto` aux options de configuration, de manière à
72 ce qu'elles sachent quelle fonction eos appeler (que ça soit une info
73 dans l'option ou bien au niveau de la config ?)
74 le fait de détecter un "auto" vient du owner, mais il faut savoir
75 quelle fonction appeler
80 - les variables multiples
81 - expliquer les urls du json dans la doc
82 - documenter le typage des options descriptions descr_type
87 Option -> attribut help (en plus de doc)
88 get_help() (à mettre en class Type avec Doc aussi)
90 separator -> pas pour l'instant
92 fill, auto, obligatoire
96 type option (dérivé de ChoiceOPtion) dans lequel il y a des nouvelles valeurs
97 possibles (pas de validations) ou plutôt une StringOption qui propose un choix
98 de valeurs par défault de type liste.
102 - hide pour les sous-sous config (récursivement) et pas seulement une
103 seule sous-config (ou bien, quelque chose de réglable)
105 - validate global : vérifier à l'init de la conf qu'une variable
106 n'existe pas déjà, etc
110 - un attribut eosfunc pour auto + les paramètres à donner à la fonction
111 pareil pour le fill (function et paramètres)
116 **à discuter** : ça correspond exactement au override,
117 ou bien au opt.setoption(None, 'default')
119 **si la valeur par défaut est définie, un __get__ ne pourra jamais
120 renvoyer None.** ce qui est bloquant. Il faut pouvoir revenir à None.
122 pour supprimer la valeur d'une options (et revenir à la valeur par défault)
123 cfg.reset() (supprime _cfgimpl_value[name]) et _cfgimpl_value_owner[name])