eole presentation finished
[tiramisu.git] / doc / todo.txt
1 :date: 20 janvier 2012
2
3 créer une variable implicite cachée
4
5 :: 
6
7     <variable name="toto"
8
9     exists='False' hidden='True'>
10     <value>non<value>
11
12 si la variable n'existe pas, elle est crée avec une valeur par défaut
13
14 cela permet une alternative aux dépendances (pour ne pas installer un 
15 paquet inutilement)
16
17 coder ça exactement comme les hidden ou les disabled, avec une levée 
18 d'exception supplémentaire comme filtre.
19
20 :date: 20 janvier 2012
21
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 
24
25 mettre une contrainte de temps dans le cache
26
27 - pouvoir forcer le recalcul de toutes les variables (vider le cache)
28   globalement dans toute la config
29
30 - mettre une contrainte de temps donnée 
31   expires = timestamp + deltatime
32
33 :date: 17 avril
34
35 - lever une exception parlante (pour l'instant, c'est une "KeyError") 
36   lorsqu'on essaye d'affecter quelque chose
37   à un groupe, genre
38
39 ::
40
41     cfg = Config(descr)
42     cfg.gc = "uvw"
43
44 alors que gc est un groupe
45
46 :date: 12 avril
47
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
51   
52 :date: 3 avril 2012
53
54 - hide sur les sous-sous groupe : il faut que ça hide **tout** les sous-groupe
55   récursivement
56   
57 groupes `master/slaves`:
58
59     faut-il coder les multi avec des requires, ou bien simplement 
60     un groupe avec comme variable le nom du groupe ?
61
62 auto, fill, obligatoire
63
64 2012-03-22
65
66     **groupe master**
67         
68         faire une api du genre : `Option().is_master()`
69         pour cela, tester `if self.parent._name == self._name: return True`
70
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
76
77 A documenter
78 -------------
79
80 - les variables multiples
81 - expliquer les urls du json dans la doc
82 - documenter le typage des options descriptions descr_type 
83
84 A ajouter
85 ---------  
86
87 Option -> attribut help (en plus de doc)
88           get_help() (à mettre en class Type avec Doc aussi)
89           
90 separator -> pas pour l'instant
91
92 fill, auto, obligatoire
93
94 nouveau type : 
95
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.
99
100 :date: 24 mars
101
102 - hide pour les sous-sous config (récursivement) et pas seulement une 
103   seule sous-config (ou bien, quelque chose de réglable)
104
105 - validate global : vérifier à l'init de la conf qu'une variable 
106   n'existe pas déjà, etc
107
108 :date: 26 janvier
109
110 - un attribut eosfunc pour auto + les paramètres à donner à la fonction
111   pareil pour le fill (function et paramètres)
112
113 reset
114 -------
115
116 **à discuter** : ça correspond exactement au override, 
117 ou bien au opt.setoption(None, 'default')
118
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.
121
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])
124
125 reset() 
126