127 lines
3.3 KiB
Text
127 lines
3.3 KiB
Text
:date: 20 janvier 2012
|
|
|
|
créer une variable implicite cachée
|
|
|
|
::
|
|
|
|
<variable name="toto"
|
|
|
|
exists='False' hidden='True'>
|
|
<value>non<value>
|
|
|
|
si la variable n'existe pas, elle est crée avec une valeur par défaut
|
|
|
|
cela permet une alternative aux dépendances (pour ne pas installer un
|
|
paquet inutilement)
|
|
|
|
coder ça exactement comme les hidden ou les disabled, avec une levée
|
|
d'exception supplémentaire comme filtre.
|
|
|
|
:date: 20 janvier 2012
|
|
|
|
coder un cache pour les options dont le propriétaire est "auto" ou "fill"
|
|
mettre ça dans un attribut `_cache` de l'option
|
|
|
|
mettre une contrainte de temps dans le cache
|
|
|
|
- pouvoir forcer le recalcul de toutes les variables (vider le cache)
|
|
globalement dans toute la config
|
|
|
|
- mettre une contrainte de temps donnée
|
|
time = 1000
|
|
|
|
:date: 17 avril
|
|
|
|
- lever une exception parlante (pour l'instant, c'est une "KeyError")
|
|
lorsqu'on essaye d'affecter quelque chose
|
|
à un groupe, genre
|
|
|
|
::
|
|
|
|
cfg = Config(descr)
|
|
cfg.gc = "uvw"
|
|
|
|
alors que gc est un groupe
|
|
|
|
:date: 12 avril
|
|
|
|
- faire un mode dégradé avec des warnings
|
|
- validations de longueur des maitres/esclaves ailleurs à sortir des requires
|
|
et à mettre dans des validators
|
|
|
|
:date: 3 avril 2012
|
|
|
|
- hide sur les sous-sous groupe : il faut que ça hide **tout** les sous-groupe
|
|
récursivement
|
|
|
|
groupes `master/slaves`:
|
|
|
|
faut-il coder les multi avec des requires, ou bien simplement
|
|
un groupe avec comme variable le nom du groupe ?
|
|
|
|
auto, fill, obligatoire
|
|
|
|
2012-03-22
|
|
|
|
**groupe master**
|
|
|
|
faire une api du genre : `Option().is_master()`
|
|
pour cela, tester `if self.parent._name == self._name: return True`
|
|
|
|
- mettre un attribut `auto` aux options de configuration, de manière à
|
|
ce qu'elles sachent quelle fonction eos appeler (que ça soit une info
|
|
dans l'option ou bien au niveau de la config ?)
|
|
le fait de détecter un "auto" vient du owner, mais il faut savoir
|
|
quelle fonction appeler
|
|
|
|
A documenter
|
|
-------------
|
|
|
|
- les variables multiples
|
|
- expliquer les urls du json dans la doc
|
|
- documenter le typage des options descriptions descr_type
|
|
|
|
A ajouter
|
|
---------
|
|
|
|
Option -> attribut help (en plus de doc)
|
|
get_help() (à mettre en class Type avec Doc aussi)
|
|
|
|
separator -> pas pour l'instant
|
|
|
|
fill, auto, obligatoire
|
|
|
|
nouveau type :
|
|
|
|
type option (dérivé de ChoiceOPtion) dans lequel il y a des nouvelles valeurs
|
|
possibles (pas de validations) ou plutôt une StringOption qui propose un choix
|
|
de valeurs par défault de type liste.
|
|
|
|
|
|
:date: 24 mars
|
|
|
|
- hide pour les sous-sous config (récursivement) et pas seulement une
|
|
seule sous-config (ou bien, quelque chose de réglable)
|
|
|
|
- validate global : vérifier à l'init de la conf qu'une variable
|
|
n'existe pas déjà, etc
|
|
|
|
:date: 26 janvier
|
|
|
|
- un attribut eosfunc pour auto + les paramètres à donner à la fonction
|
|
pareil pour le fill (function et paramètres)
|
|
|
|
reset
|
|
-------
|
|
|
|
**à discuter** : ça correspond exactement au override,
|
|
ou bien au opt.setoption(None, 'default')
|
|
|
|
**si la valeur par défaut est définie, un __get__ ne pourra jamais
|
|
renvoyer None.** ce qui est bloquant. Il faut pouvoir revenir à None.
|
|
|
|
pour supprimer la valeur d'une options (et revenir à la valeur par défault)
|
|
cfg.reset() (supprime _cfgimpl_value[name]) et _cfgimpl_value_owner[name])
|
|
|
|
reset()
|
|
|