: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()