personalise functions that can returns list
This commit is contained in:
parent
e6a69b8441
commit
db00e384e6
3 changed files with 14 additions and 4 deletions
|
@ -14,6 +14,12 @@ Pour modifier il suffit de faire :
|
||||||
RougailConfig[key] = value
|
RougailConfig[key] = value
|
||||||
```
|
```
|
||||||
|
|
||||||
|
## Ajout d'une fonction de conversion
|
||||||
|
|
||||||
|
Les fonctions de conversion fait parti du moteur de rougail. Il converti les informations des dictionnaires pour créer des variables Tiramisu.
|
||||||
|
|
||||||
|
La clef "extra_annotators" permet d'ajouter des fonctions complémentaires.
|
||||||
|
|
||||||
## Configuration de chargement des dictionnaires
|
## Configuration de chargement des dictionnaires
|
||||||
|
|
||||||
### Les répertoires des dictionnaires
|
### Les répertoires des dictionnaires
|
||||||
|
@ -50,6 +56,9 @@ Pour pouvez changer le répertoire de destination de la DTD et le nom du fichier
|
||||||
|
|
||||||
Le fichier qui contient les fonctions personnalisés est géré dans la clef "functions_file" et a comme valeur par défaut "/srv/rougail/functions.py". Cette clef peut contenir une liste s'il y a plusieurs fichiers.
|
Le fichier qui contient les fonctions personnalisés est géré dans la clef "functions_file" et a comme valeur par défaut "/srv/rougail/functions.py". Cette clef peut contenir une liste s'il y a plusieurs fichiers.
|
||||||
|
|
||||||
|
Les fonctions doivent retourner une valeur, même si la variable que l'on calcul est une variable multiple.
|
||||||
|
Si la fonction peut retourner une valeur multiple (une liste), il faut mettre le nom de la fonction dans la clef "multi_functions".
|
||||||
|
|
||||||
### La variable auto_freeze
|
### La variable auto_freeze
|
||||||
|
|
||||||
La propriété auto_freeze n'est appliqué que une variable spécifique passe à True. Par défaut le nom de la variable est "instancied_module", mais il est possible de changer le nom de cette variable via la clef "auto_freeze_variable".
|
La propriété auto_freeze n'est appliqué que une variable spécifique passe à True. Par défaut le nom de la variable est "instancied_module", mais il est possible de changer le nom de cette variable via la clef "auto_freeze_variable".
|
||||||
|
@ -113,8 +122,6 @@ Le groupe propriétaire des fichiers générés est géré dans la clef "default
|
||||||
La méthode d'inclusion des fichiers générés est géré dans la clef "default_files_included" et a comme valeur par défaut : "no". Les valeurs possible sont "no", "name" et "content".
|
La méthode d'inclusion des fichiers générés est géré dans la clef "default_files_included" et a comme valeur par défaut : "no". Les valeurs possible sont "no", "name" et "content".
|
||||||
'default_files_included': 'no',
|
'default_files_included': 'no',
|
||||||
|
|
||||||
## La configuration par défaut des overrides
|
## La configuration du moteur de templates
|
||||||
|
|
||||||
### Le moteur de templates par défaut
|
|
||||||
|
|
||||||
Le moteur de template est géré dans la clef "default_overrides_engine" et a comme valeur par défaut : "creole". Les valeurs possible sont "none", "creole" ou "jinja2".
|
Le moteur de template est géré dans la clef "default_overrides_engine" et a comme valeur par défaut : "creole". Les valeurs possible sont "none", "creole" ou "jinja2".
|
||||||
|
|
|
@ -50,6 +50,8 @@ class Annotator(TargetAnnotator, ParamAnnotator):
|
||||||
self.objectspace = objectspace
|
self.objectspace = objectspace
|
||||||
self.functions = copy(functions)
|
self.functions = copy(functions)
|
||||||
self.functions.extend(self.objectspace.rougailconfig['internal_functions'])
|
self.functions.extend(self.objectspace.rougailconfig['internal_functions'])
|
||||||
|
self.calc_multi = list(CALC_MULTI)
|
||||||
|
self.calc_multi.extend(self.objectspace.rougailconfig['multi_functions'])
|
||||||
self.target_is_uniq = True
|
self.target_is_uniq = True
|
||||||
self.only_variable = True
|
self.only_variable = True
|
||||||
self.allow_function = False
|
self.allow_function = False
|
||||||
|
@ -79,7 +81,7 @@ class Annotator(TargetAnnotator, ParamAnnotator):
|
||||||
value = self.objectspace.value(fill.xmlfiles)
|
value = self.objectspace.value(fill.xmlfiles)
|
||||||
value.type = 'calculation'
|
value.type = 'calculation'
|
||||||
value.name = fill.name
|
value.name = fill.name
|
||||||
if fill.name not in CALC_MULTI:
|
if fill.name not in self.calc_multi:
|
||||||
is_calc_multi = self.calc_is_multi(target.name)
|
is_calc_multi = self.calc_is_multi(target.name)
|
||||||
else:
|
else:
|
||||||
is_calc_multi = False
|
is_calc_multi = False
|
||||||
|
|
|
@ -43,6 +43,7 @@ RougailConfig = {'dictionaries_dir': [join(ROUGAILROOT, 'dictionaries')],
|
||||||
'variable_namespace': 'rougail',
|
'variable_namespace': 'rougail',
|
||||||
'auto_freeze_variable': 'server_deployed',
|
'auto_freeze_variable': 'server_deployed',
|
||||||
'internal_functions': [],
|
'internal_functions': [],
|
||||||
|
'multi_functions': [],
|
||||||
'extra_annotators': [],
|
'extra_annotators': [],
|
||||||
'modes_level': ['basic', 'normal', 'expert'],
|
'modes_level': ['basic', 'normal', 'expert'],
|
||||||
'default_family_mode': 'basic',
|
'default_family_mode': 'basic',
|
||||||
|
|
Loading…
Reference in a new issue