From 6ca3e236f96f3611f934276de76674db85dc10b4 Mon Sep 17 00:00:00 2001 From: Emmanuel Garette Date: Thu, 20 Apr 2017 11:20:37 +0200 Subject: [PATCH] reset cache when permissive is added --- test/test_permissive.py | 15 +++- tiramisu/setting.py | 6 +- translations/fr/tiramisu.po | 158 +++++++++++++++++++----------------- translations/tiramisu.pot | 148 ++++++++++++++++----------------- 4 files changed, 175 insertions(+), 152 deletions(-) diff --git a/test/test_permissive.py b/test/test_permissive.py index 99d3ac9..423b9b5 100644 --- a/test/test_permissive.py +++ b/test/test_permissive.py @@ -4,7 +4,7 @@ do_autopath() from py.test import raises -from tiramisu.option import IntOption, OptionDescription +from tiramisu.option import IntOption, UnicodeOption, OptionDescription from tiramisu.config import Config from tiramisu.error import PropertiesOptionError @@ -199,3 +199,16 @@ def test_invalid_option_permissive(): setting = config.cfgimpl_get_settings() config.read_write() raises(TypeError, "setting.setpermissive(['frozen', 'disabled',], u1)") + + +def test_remove_option_permissive(): + var1 = UnicodeOption('var1', '', u'value', properties=('hidden',)) + od1 = OptionDescription('od1', '', [var1]) + rootod = OptionDescription('rootod', '', [od1]) + config = Config(rootod) + config.read_write() + raises(PropertiesOptionError, "config.od1.var1") + config.cfgimpl_get_settings().setpermissive(('hidden',), var1) + assert config.od1.var1 == u'value' + config.cfgimpl_get_settings().setpermissive(tuple(), var1) + raises(PropertiesOptionError, "config.od1.var1") diff --git a/tiramisu/setting.py b/tiramisu/setting.py index 8a99795..74d2322 100644 --- a/tiramisu/setting.py +++ b/tiramisu/setting.py @@ -303,6 +303,9 @@ class Property(object): def __repr__(self): return str(list(self._properties)) + def get(self): + return tuple(self._properties) + #____________________________________________________________ class Settings(object): @@ -505,7 +508,7 @@ class Settings(object): opt_type = 'option' if 'frozen' in properties: return PropertiesOptionError(_('cannot change the value for ' - 'option {0} this option is' + 'option "{0}" this option is' ' frozen').format( opt_or_descr.impl_getname()), props, self, datas, opt_type) @@ -538,6 +541,7 @@ class Settings(object): if not isinstance(permissive, tuple): # pragma: optional cover raise TypeError(_('permissive must be a tuple')) self._p_.setpermissive(path, permissive) + self._getcontext().cfgimpl_reset_cache() #____________________________________________________________ def setowner(self, owner): diff --git a/translations/fr/tiramisu.po b/translations/fr/tiramisu.po index a8d5fca..76681f6 100644 --- a/translations/fr/tiramisu.po +++ b/translations/fr/tiramisu.po @@ -2,7 +2,7 @@ msgid "" msgstr "" "Project-Id-Version: Tiramisu\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2017-02-12 10:35+0100\n" +"POT-Creation-Date: 2017-04-20 10:15+0200\n" "PO-Revision-Date: \n" "Last-Translator: Emmanuel Garette \n" "Language-Team: Tiramisu's team \n" @@ -10,7 +10,7 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: Poedit 1.8.11\n" +"X-Generator: Poedit 1.8.12\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" "X-Poedit-SourceCharset: UTF-8\n" @@ -47,8 +47,8 @@ msgstr "descr doit être une optiondescription pas un {0}" msgid "unknown group_type: {0}" msgstr "group_type inconnu: {0}" -#: tiramisu/config.py:187 tiramisu/setting.py:335 tiramisu/value.py:54 -#: tiramisu/value.py:756 +#: tiramisu/config.py:187 tiramisu/setting.py:338 tiramisu/value.py:54 +#: tiramisu/value.py:757 msgid "the context does not exist anymore" msgstr "le context n'existe plus" @@ -149,11 +149,11 @@ msgstr "ou" msgid " {} " msgstr " {} " -#: tiramisu/error.py:81 tiramisu/setting.py:514 +#: tiramisu/error.py:81 tiramisu/setting.py:517 msgid "property" msgstr "de la propriété" -#: tiramisu/error.py:83 tiramisu/setting.py:516 +#: tiramisu/error.py:83 tiramisu/setting.py:519 msgid "properties" msgstr "des propriétés" @@ -161,7 +161,7 @@ msgstr "des propriétés" msgid "cannot access to {0} \"{1}\" because \"{2}\" has {3} {4}" msgstr "ne peut accéder à {0} \"{1}\" parce que \"{2}\" a {3} {4}" -#: tiramisu/error.py:92 tiramisu/setting.py:517 +#: tiramisu/error.py:92 tiramisu/setting.py:520 msgid "cannot access to {0} \"{1}\" because has {2} {3}" msgstr "ne peut accéder à l'{0} \"{1}\" a cause {2} {3}" @@ -259,7 +259,7 @@ msgstr "" "attention, \"{0}\" peut être une option de type {1} invalide pour \"{2}\", " "{3}" -#: tiramisu/option/baseoption.py:551 tiramisu/option/baseoption.py:665 +#: tiramisu/option/baseoption.py:551 tiramisu/option/baseoption.py:671 msgid "invalid value \"{}\", this value is already in \"{}\"" msgstr "valeur invalide \"{}\", cette valeur est déjà dans \"{}\"" @@ -275,7 +275,7 @@ msgstr "\"{0}\" est une valeur invalide pour l'option \"{2}\" de type {1}" msgid "do_validation for {0}: error in value" msgstr "do_validation for {0} : erreur dans un la valeur" -#: tiramisu/option/baseoption.py:652 tiramisu/option/baseoption.py:670 +#: tiramisu/option/baseoption.py:652 tiramisu/option/baseoption.py:676 msgid "invalid value \"{0}\" for \"{1}\" which must be a list" msgstr "valeur invalide \"{0}\" pour \"{1}\" qui doit être une liste" @@ -283,88 +283,88 @@ msgstr "valeur invalide \"{0}\" pour \"{1}\" qui doit être une liste" msgid "invalid value \"{}\" for \"{}\" which must not be a list" msgstr "valeur invalide \"{0}\" pour \"{1}\" qui ne doit pas être une liste" -#: tiramisu/option/baseoption.py:679 +#: tiramisu/option/baseoption.py:685 msgid "invalid value \"{0}\" for \"{1}\" which must be a list of list" msgstr "valeur invalide \"{0}\" pour \"{1}\" qui doit être une liste de liste" -#: tiramisu/option/baseoption.py:732 tiramisu/option/baseoption.py:736 +#: tiramisu/option/baseoption.py:738 tiramisu/option/baseoption.py:742 msgid "cannot add consistency with submulti option" msgstr "ne peut ajouter de test de consistence a une option submulti" -#: tiramisu/option/baseoption.py:738 +#: tiramisu/option/baseoption.py:744 msgid "consistency must be set with an option" msgstr "consistency doit être configuré avec une option" -#: tiramisu/option/baseoption.py:741 tiramisu/option/baseoption.py:748 +#: tiramisu/option/baseoption.py:747 tiramisu/option/baseoption.py:754 msgid "" "almost one option in consistency is in a dynoptiondescription but not all" msgstr "" "au moins une option dans le test de consistance est dans une " "dynoptiondescription mais pas toutes" -#: tiramisu/option/baseoption.py:744 +#: tiramisu/option/baseoption.py:750 msgid "option in consistency must be in same dynoptiondescription" msgstr "" "option dans une consistency doit être dans le même dynoptiondescription" -#: tiramisu/option/baseoption.py:751 +#: tiramisu/option/baseoption.py:757 msgid "cannot add consistency with itself" msgstr "ne peut ajouter une consistency avec lui même" -#: tiramisu/option/baseoption.py:753 +#: tiramisu/option/baseoption.py:759 msgid "every options in consistency must be multi or none" msgstr "" "toutes les options d'une consistency doivent être multi ou ne pas l'être" -#: tiramisu/option/baseoption.py:770 +#: tiramisu/option/baseoption.py:777 msgid "'{0}' ({1}) cannot add consistency, option is read-only" msgstr "" "'{0}' ({1}) ne peut ajouter de consistency, l'option est en lecture seul" -#: tiramisu/option/baseoption.py:777 +#: tiramisu/option/baseoption.py:784 msgid "consistency {0} not available for this option" msgstr "consistency {0} non valable pour cette option" -#: tiramisu/option/baseoption.py:781 +#: tiramisu/option/baseoption.py:788 msgid "unknow parameter {0} in consistency" msgstr "paramètre inconnu {0} dans un test de consistance" -#: tiramisu/option/baseoption.py:845 +#: tiramisu/option/baseoption.py:853 msgid "_cons_not_equal: {} are not different" msgstr "_cons_not_equal: {} sont différents" -#: tiramisu/option/baseoption.py:848 +#: tiramisu/option/baseoption.py:856 msgid "should be different from the value of {}" msgstr "devrait être différent de la valeur de {}" -#: tiramisu/option/baseoption.py:850 +#: tiramisu/option/baseoption.py:858 msgid "must be different from the value of {}" msgstr "doit être différent de la valeur de {}" -#: tiramisu/option/baseoption.py:853 +#: tiramisu/option/baseoption.py:861 msgid "value for {} should be different" msgstr "valeur pour {} devrait être différent" -#: tiramisu/option/baseoption.py:855 +#: tiramisu/option/baseoption.py:863 msgid "value for {} must be different" msgstr "valeur pour {} doit être différent" -#: tiramisu/option/baseoption.py:914 +#: tiramisu/option/baseoption.py:922 msgid "default value not allowed if option: {0} is calculated" msgstr "la valeur par défaut n'est pas possible si l'option {0} est calculée" -#: tiramisu/option/baseoption.py:934 +#: tiramisu/option/baseoption.py:942 msgid "malformed requirements type for option: {0}, must be a dict" msgstr "" "type requirements malformé pour l'option : {0}, doit être un dictionnaire" -#: tiramisu/option/baseoption.py:940 +#: tiramisu/option/baseoption.py:948 msgid "malformed requirements for option: {0} unknown keys {1}, must only {2}" msgstr "" "requirements mal formés pour l'option : {0} clefs inconnues {1}, doit " "seulement avoir {2}" -#: tiramisu/option/baseoption.py:948 +#: tiramisu/option/baseoption.py:956 msgid "" "malformed requirements for option: {0} require must have option, expected " "and action keys" @@ -372,33 +372,33 @@ msgstr "" "requirements malformé pour l'option : {0} l'exigence doit avoir les clefs " "option, expected et action" -#: tiramisu/option/baseoption.py:955 +#: tiramisu/option/baseoption.py:963 msgid "" "malformed requirements for option: {0} action cannot be force_store_value" msgstr "" "requirements mal formés pour l'option : {0} action ne peut pas être " "force_store_value" -#: tiramisu/option/baseoption.py:960 +#: tiramisu/option/baseoption.py:968 msgid "malformed requirements for option: {0} inverse must be boolean" msgstr "" "requirements mal formés pour l'option : {0} inverse doit être un booléen" -#: tiramisu/option/baseoption.py:964 +#: tiramisu/option/baseoption.py:972 msgid "malformed requirements for option: {0} transitive must be boolean" msgstr "" "requirements mal formés pour l'option : {0} transitive doit être booléen" -#: tiramisu/option/baseoption.py:968 +#: tiramisu/option/baseoption.py:976 msgid "malformed requirements for option: {0} same_action must be boolean" msgstr "" "requirements mal formés pour l'option : {0} same_action doit être un booléen" -#: tiramisu/option/baseoption.py:972 +#: tiramisu/option/baseoption.py:980 msgid "malformed requirements must be an option in option {0}" msgstr "requirements mal formés doit être une option dans l'option {0}" -#: tiramisu/option/baseoption.py:975 +#: tiramisu/option/baseoption.py:983 msgid "" "malformed requirements multi option must not set as requires of non multi " "option {0}" @@ -406,12 +406,12 @@ msgstr "" "requirements mal formés une option multiple ne doit pas être spécifié comme " "pré-requis à l'option non multiple {0}" -#: tiramisu/option/baseoption.py:981 +#: tiramisu/option/baseoption.py:989 msgid "malformed requirements expected value must be valid for option {0}: {1}" msgstr "" "valeur de \"expected\" malformé, doit être valide pour l'option {0} : {1}" -#: tiramisu/option/baseoption.py:1011 +#: tiramisu/option/baseoption.py:1019 msgid "malformed symlinkoption must be an option for symlink {0}" msgstr "symlinkoption mal formé, doit être une option pour symlink {0}" @@ -591,63 +591,63 @@ msgstr "allow_ip doit être un booléen" msgid "allow_without_dot must be a boolean" msgstr "allow_without_dot doit être un booléen" -#: tiramisu/option/option.py:490 +#: tiramisu/option/option.py:510 msgid "invalid length (min 1)" msgstr "longueur invalide (min 1)" -#: tiramisu/option/option.py:492 +#: tiramisu/option/option.py:512 msgid "invalid length (max {0})" msgstr "longueur invalide (max {0})" -#: tiramisu/option/option.py:507 +#: tiramisu/option/option.py:527 msgid "must not be an IP" msgstr "ne doit pas être une IP" -#: tiramisu/option/option.py:514 +#: tiramisu/option/option.py:531 msgid "must have dot" msgstr "doit avec un point" -#: tiramisu/option/option.py:516 +#: tiramisu/option/option.py:533 msgid "invalid length (max 255)" msgstr "longueur invalide (max 255)" -#: tiramisu/option/option.py:527 +#: tiramisu/option/option.py:543 msgid "some characters are uppercase" msgstr "des caractères sont en majuscule" -#: tiramisu/option/option.py:530 +#: tiramisu/option/option.py:546 msgid "some characters may cause problems" msgstr "des caractères peuvent poser problèmes" -#: tiramisu/option/option.py:551 +#: tiramisu/option/option.py:555 msgid "URL" msgstr "URL" -#: tiramisu/option/option.py:559 +#: tiramisu/option/option.py:563 msgid "must start with http:// or https://" msgstr "doit débuter par http:// ou https://" -#: tiramisu/option/option.py:577 +#: tiramisu/option/option.py:581 msgid "port must be an between 0 and 65536" msgstr "port doit être entre 0 et 65536" -#: tiramisu/option/option.py:588 +#: tiramisu/option/option.py:592 msgid "must ends with a valid resource name" msgstr "doit finir par un nom de ressource valide" -#: tiramisu/option/option.py:609 +#: tiramisu/option/option.py:613 msgid "email address" msgstr "adresse mail" -#: tiramisu/option/option.py:616 +#: tiramisu/option/option.py:620 msgid "username" msgstr "nom d'utilisateur" -#: tiramisu/option/option.py:622 +#: tiramisu/option/option.py:626 msgid "file name" msgstr "nom de fichier" -#: tiramisu/option/option.py:627 +#: tiramisu/option/option.py:631 msgid "date" msgstr "date" @@ -767,37 +767,38 @@ msgstr "" "ne peut ajouter la propriété {0} dans l'option {1}: cette propriété est " "calculée" -#: tiramisu/setting.py:269 tiramisu/setting.py:435 +#: tiramisu/setting.py:269 tiramisu/setting.py:438 msgid "cannot add those properties: {0}" msgstr "ne peut pas ajouter ces propriétés : {0}" -#: tiramisu/setting.py:358 +#: tiramisu/setting.py:361 msgid "you should only append/remove properties" msgstr "pour pouvait seulement ajouter/supprimer des propriétés" -#: tiramisu/setting.py:362 +#: tiramisu/setting.py:365 msgid "opt and all_properties must not be set together in reset" msgstr "opt et all_properties ne doit pas être renseigné ensemble dans reset" -#: tiramisu/setting.py:383 +#: tiramisu/setting.py:386 msgid "if opt is not None, path should not be None in _getproperties" msgstr "" "si opt n'est pas None, path devrait ne pas être à None dans _getproperties" -#: tiramisu/setting.py:507 -msgid "cannot change the value for option {0} this option is frozen" +#: tiramisu/setting.py:510 +msgid "cannot change the value for option \"{0}\" this option is frozen" msgstr "" -"ne peut modifier la valeur de l'option {0} cette option n'est pas modifiable" +"ne peut modifier la valeur de l'option \"{0}\" cette option n'est pas " +"modifiable" -#: tiramisu/setting.py:539 +#: tiramisu/setting.py:542 msgid "permissive must be a tuple" msgstr "permissive doit être un tuple" -#: tiramisu/setting.py:546 tiramisu/value.py:546 +#: tiramisu/setting.py:549 tiramisu/value.py:549 msgid "invalid generic owner {0}" msgstr "invalide owner générique {0}" -#: tiramisu/setting.py:647 +#: tiramisu/setting.py:650 msgid "" "malformed requirements imbrication detected for option: '{0}' with " "requirement on: '{1}'" @@ -805,15 +806,15 @@ msgstr "" "imbrication de requirements mal formés detectée pour l'option : '{0}' avec " "requirement sur : '{1}'" -#: tiramisu/setting.py:672 +#: tiramisu/setting.py:675 msgid "option '{0}' has requirement's property error: {1} {2}" msgstr "l'option '{0}' a une erreur de propriété pour le requirement : {1} {2}" -#: tiramisu/setting.py:694 +#: tiramisu/setting.py:697 msgid "the value of \"{0}\" is \"{1}\"" msgstr "la valeur de \"{0}\" est \"{1}\"" -#: tiramisu/setting.py:696 +#: tiramisu/setting.py:699 msgid "the value of \"{0}\" is not \"{1}\"" msgstr "la valeur de \"{0}\" n'est pas \"{1}\"" @@ -891,55 +892,60 @@ msgstr "un espace de stockage dictionary ne peut être persistant" msgid "information's item not found {0}" msgstr "l'information de l'objet ne sont pas trouvé {0}" -#: tiramisu/value.py:395 +#: tiramisu/value.py:397 msgid "you should only set value with config" msgstr "vous devez seul affecter une valeur avec un config" -#: tiramisu/value.py:507 +#: tiramisu/value.py:509 msgid "owner only avalaible for an option" msgstr "owner seulement possible pour une option" -#: tiramisu/value.py:551 +#: tiramisu/value.py:554 msgid "no value for {0} cannot change owner to {1}" msgstr "pas de valeur pour {0} ne peut changer d'utilisateur pour {1}" -#: tiramisu/value.py:685 +#: tiramisu/value.py:686 msgid "can force cache only if cache is actived in config" msgstr "" "peut force la mise en cache seulement si le cache est activé dans la config" -#: tiramisu/value.py:722 +#: tiramisu/value.py:723 msgid "{0} is already a Multi " msgstr "{0} est déjà une Multi" -#: tiramisu/value.py:802 +#: tiramisu/value.py:806 msgid "cannot append a value on a multi option {0} which is a slave" msgstr "ne peut ajouter une valeur sur l'option multi {0} qui est une esclave" -#: tiramisu/value.py:835 +#: tiramisu/value.py:839 msgid "cannot sort multi option {0} if master or slave" msgstr "ne peut trier une option multi {0} pour une maître ou une esclave" -#: tiramisu/value.py:839 +#: tiramisu/value.py:843 msgid "cmp is not permitted in python v3 or greater" msgstr "cmp n'est pas permis en python v3 ou supérieure" -#: tiramisu/value.py:848 +#: tiramisu/value.py:852 msgid "cannot reverse multi option {0} if master or slave" msgstr "ne peut inverser une option multi {0} pour une maître ou une esclave" -#: tiramisu/value.py:855 +#: tiramisu/value.py:859 msgid "cannot insert multi option {0} if master or slave" msgstr "ne peut insérer une option multi {0} pour une maître ou une esclave" -#: tiramisu/value.py:872 +#: tiramisu/value.py:876 msgid "cannot extend multi option {0} if master or slave" msgstr "ne peut étendre une option multi {0} pour une maître ou une esclave" -#: tiramisu/value.py:912 +#: tiramisu/value.py:916 msgid "cannot pop a value on a multi option {0} which is a slave" msgstr "ne peut supprimer une valeur dans l'option multi {0} qui est esclave" +#~ msgid "cannot change the value for option {0} this option is frozen" +#~ msgstr "" +#~ "ne peut modifier la valeur de l'option {0} cette option n'est pas " +#~ "modifiable" + #~ msgid "function \"{0}\" returns \"{1}\" for option \"{2}\"" #~ msgstr "la fonction \"{0}\" retourne \"{1}\" pour l'option \"{2}\"" diff --git a/translations/tiramisu.pot b/translations/tiramisu.pot index b8c01a3..21c2fb7 100644 --- a/translations/tiramisu.pot +++ b/translations/tiramisu.pot @@ -5,7 +5,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" -"POT-Creation-Date: 2017-02-12 10:34+CET\n" +"POT-Creation-Date: 2017-04-20 10:15+CEST\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -39,8 +39,8 @@ msgstr "" msgid "unknown group_type: {0}" msgstr "" -#: tiramisu/config.py:187 tiramisu/setting.py:335 tiramisu/value.py:54 -#: tiramisu/value.py:756 +#: tiramisu/config.py:187 tiramisu/setting.py:338 tiramisu/value.py:54 +#: tiramisu/value.py:757 msgid "the context does not exist anymore" msgstr "" @@ -132,11 +132,11 @@ msgstr "" msgid " {} " msgstr "" -#: tiramisu/error.py:81 tiramisu/setting.py:514 +#: tiramisu/error.py:81 tiramisu/setting.py:517 msgid "property" msgstr "" -#: tiramisu/error.py:83 tiramisu/setting.py:516 +#: tiramisu/error.py:83 tiramisu/setting.py:519 msgid "properties" msgstr "" @@ -144,7 +144,7 @@ msgstr "" msgid "cannot access to {0} \"{1}\" because \"{2}\" has {3} {4}" msgstr "" -#: tiramisu/error.py:92 tiramisu/setting.py:517 +#: tiramisu/error.py:92 tiramisu/setting.py:520 msgid "cannot access to {0} \"{1}\" because has {2} {3}" msgstr "" @@ -232,7 +232,7 @@ msgstr "" msgid "attention, \"{0}\" could be an invalid {1} for \"{2}\", {3}" msgstr "" -#: tiramisu/option/baseoption.py:551 tiramisu/option/baseoption.py:665 +#: tiramisu/option/baseoption.py:551 tiramisu/option/baseoption.py:671 msgid "invalid value \"{}\", this value is already in \"{}\"" msgstr "" @@ -248,7 +248,7 @@ msgstr "" msgid "do_validation for {0}: error in value" msgstr "" -#: tiramisu/option/baseoption.py:652 tiramisu/option/baseoption.py:670 +#: tiramisu/option/baseoption.py:652 tiramisu/option/baseoption.py:676 msgid "invalid value \"{0}\" for \"{1}\" which must be a list" msgstr "" @@ -256,111 +256,111 @@ msgstr "" msgid "invalid value \"{}\" for \"{}\" which must not be a list" msgstr "" -#: tiramisu/option/baseoption.py:679 +#: tiramisu/option/baseoption.py:685 msgid "invalid value \"{0}\" for \"{1}\" which must be a list of list" msgstr "" -#: tiramisu/option/baseoption.py:732 tiramisu/option/baseoption.py:736 +#: tiramisu/option/baseoption.py:738 tiramisu/option/baseoption.py:742 msgid "cannot add consistency with submulti option" msgstr "" -#: tiramisu/option/baseoption.py:738 +#: tiramisu/option/baseoption.py:744 msgid "consistency must be set with an option" msgstr "" -#: tiramisu/option/baseoption.py:741 tiramisu/option/baseoption.py:748 +#: tiramisu/option/baseoption.py:747 tiramisu/option/baseoption.py:754 msgid "almost one option in consistency is in a dynoptiondescription but not all" msgstr "" -#: tiramisu/option/baseoption.py:744 +#: tiramisu/option/baseoption.py:750 msgid "option in consistency must be in same dynoptiondescription" msgstr "" -#: tiramisu/option/baseoption.py:751 +#: tiramisu/option/baseoption.py:757 msgid "cannot add consistency with itself" msgstr "" -#: tiramisu/option/baseoption.py:753 +#: tiramisu/option/baseoption.py:759 msgid "every options in consistency must be multi or none" msgstr "" -#: tiramisu/option/baseoption.py:770 +#: tiramisu/option/baseoption.py:777 msgid "'{0}' ({1}) cannot add consistency, option is read-only" msgstr "" -#: tiramisu/option/baseoption.py:777 +#: tiramisu/option/baseoption.py:784 msgid "consistency {0} not available for this option" msgstr "" -#: tiramisu/option/baseoption.py:781 +#: tiramisu/option/baseoption.py:788 msgid "unknow parameter {0} in consistency" msgstr "" -#: tiramisu/option/baseoption.py:845 +#: tiramisu/option/baseoption.py:853 msgid "_cons_not_equal: {} are not different" msgstr "" -#: tiramisu/option/baseoption.py:848 +#: tiramisu/option/baseoption.py:856 msgid "should be different from the value of {}" msgstr "" -#: tiramisu/option/baseoption.py:850 +#: tiramisu/option/baseoption.py:858 msgid "must be different from the value of {}" msgstr "" -#: tiramisu/option/baseoption.py:853 +#: tiramisu/option/baseoption.py:861 msgid "value for {} should be different" msgstr "" -#: tiramisu/option/baseoption.py:855 +#: tiramisu/option/baseoption.py:863 msgid "value for {} must be different" msgstr "" -#: tiramisu/option/baseoption.py:914 +#: tiramisu/option/baseoption.py:922 msgid "default value not allowed if option: {0} is calculated" msgstr "" -#: tiramisu/option/baseoption.py:934 +#: tiramisu/option/baseoption.py:942 msgid "malformed requirements type for option: {0}, must be a dict" msgstr "" -#: tiramisu/option/baseoption.py:940 +#: tiramisu/option/baseoption.py:948 msgid "malformed requirements for option: {0} unknown keys {1}, must only {2}" msgstr "" -#: tiramisu/option/baseoption.py:948 +#: tiramisu/option/baseoption.py:956 msgid "malformed requirements for option: {0} require must have option, expected and action keys" msgstr "" -#: tiramisu/option/baseoption.py:955 +#: tiramisu/option/baseoption.py:963 msgid "malformed requirements for option: {0} action cannot be force_store_value" msgstr "" -#: tiramisu/option/baseoption.py:960 +#: tiramisu/option/baseoption.py:968 msgid "malformed requirements for option: {0} inverse must be boolean" msgstr "" -#: tiramisu/option/baseoption.py:964 +#: tiramisu/option/baseoption.py:972 msgid "malformed requirements for option: {0} transitive must be boolean" msgstr "" -#: tiramisu/option/baseoption.py:968 +#: tiramisu/option/baseoption.py:976 msgid "malformed requirements for option: {0} same_action must be boolean" msgstr "" -#: tiramisu/option/baseoption.py:972 +#: tiramisu/option/baseoption.py:980 msgid "malformed requirements must be an option in option {0}" msgstr "" -#: tiramisu/option/baseoption.py:975 +#: tiramisu/option/baseoption.py:983 msgid "malformed requirements multi option must not set as requires of non multi option {0}" msgstr "" -#: tiramisu/option/baseoption.py:981 +#: tiramisu/option/baseoption.py:989 msgid "malformed requirements expected value must be valid for option {0}: {1}" msgstr "" -#: tiramisu/option/baseoption.py:1011 +#: tiramisu/option/baseoption.py:1019 msgid "malformed symlinkoption must be an option for symlink {0}" msgstr "" @@ -536,63 +536,63 @@ msgstr "" msgid "allow_without_dot must be a boolean" msgstr "" -#: tiramisu/option/option.py:490 +#: tiramisu/option/option.py:510 msgid "invalid length (min 1)" msgstr "" -#: tiramisu/option/option.py:492 +#: tiramisu/option/option.py:512 msgid "invalid length (max {0})" msgstr "" -#: tiramisu/option/option.py:507 +#: tiramisu/option/option.py:527 msgid "must not be an IP" msgstr "" -#: tiramisu/option/option.py:514 +#: tiramisu/option/option.py:531 msgid "must have dot" msgstr "" -#: tiramisu/option/option.py:516 +#: tiramisu/option/option.py:533 msgid "invalid length (max 255)" msgstr "" -#: tiramisu/option/option.py:527 +#: tiramisu/option/option.py:543 msgid "some characters are uppercase" msgstr "" -#: tiramisu/option/option.py:530 +#: tiramisu/option/option.py:546 msgid "some characters may cause problems" msgstr "" -#: tiramisu/option/option.py:551 +#: tiramisu/option/option.py:555 msgid "URL" msgstr "" -#: tiramisu/option/option.py:559 +#: tiramisu/option/option.py:563 msgid "must start with http:// or https://" msgstr "" -#: tiramisu/option/option.py:577 +#: tiramisu/option/option.py:581 msgid "port must be an between 0 and 65536" msgstr "" -#: tiramisu/option/option.py:588 +#: tiramisu/option/option.py:592 msgid "must ends with a valid resource name" msgstr "" -#: tiramisu/option/option.py:609 +#: tiramisu/option/option.py:613 msgid "email address" msgstr "" -#: tiramisu/option/option.py:616 +#: tiramisu/option/option.py:620 msgid "username" msgstr "" -#: tiramisu/option/option.py:622 +#: tiramisu/option/option.py:626 msgid "file name" msgstr "" -#: tiramisu/option/option.py:627 +#: tiramisu/option/option.py:631 msgid "date" msgstr "" @@ -697,47 +697,47 @@ msgstr "" msgid "cannot append {0} property for option {1}: this property is calculated" msgstr "" -#: tiramisu/setting.py:269 tiramisu/setting.py:435 +#: tiramisu/setting.py:269 tiramisu/setting.py:438 msgid "cannot add those properties: {0}" msgstr "" -#: tiramisu/setting.py:358 +#: tiramisu/setting.py:361 msgid "you should only append/remove properties" msgstr "" -#: tiramisu/setting.py:362 +#: tiramisu/setting.py:365 msgid "opt and all_properties must not be set together in reset" msgstr "" -#: tiramisu/setting.py:383 +#: tiramisu/setting.py:386 msgid "if opt is not None, path should not be None in _getproperties" msgstr "" -#: tiramisu/setting.py:507 -msgid "cannot change the value for option {0} this option is frozen" +#: tiramisu/setting.py:510 +msgid "cannot change the value for option \"{0}\" this option is frozen" msgstr "" -#: tiramisu/setting.py:539 +#: tiramisu/setting.py:542 msgid "permissive must be a tuple" msgstr "" -#: tiramisu/setting.py:546 tiramisu/value.py:546 +#: tiramisu/setting.py:549 tiramisu/value.py:549 msgid "invalid generic owner {0}" msgstr "" -#: tiramisu/setting.py:647 +#: tiramisu/setting.py:650 msgid "malformed requirements imbrication detected for option: '{0}' with requirement on: '{1}'" msgstr "" -#: tiramisu/setting.py:672 +#: tiramisu/setting.py:675 msgid "option '{0}' has requirement's property error: {1} {2}" msgstr "" -#: tiramisu/setting.py:694 +#: tiramisu/setting.py:697 msgid "the value of \"{0}\" is \"{1}\"" msgstr "" -#: tiramisu/setting.py:696 +#: tiramisu/setting.py:699 msgid "the value of \"{0}\" is not \"{1}\"" msgstr "" @@ -813,51 +813,51 @@ msgstr "" msgid "information's item not found {0}" msgstr "" -#: tiramisu/value.py:395 +#: tiramisu/value.py:397 msgid "you should only set value with config" msgstr "" -#: tiramisu/value.py:507 +#: tiramisu/value.py:509 msgid "owner only avalaible for an option" msgstr "" -#: tiramisu/value.py:551 +#: tiramisu/value.py:554 msgid "no value for {0} cannot change owner to {1}" msgstr "" -#: tiramisu/value.py:685 +#: tiramisu/value.py:686 msgid "can force cache only if cache is actived in config" msgstr "" -#: tiramisu/value.py:722 +#: tiramisu/value.py:723 msgid "{0} is already a Multi " msgstr "" -#: tiramisu/value.py:802 +#: tiramisu/value.py:806 msgid "cannot append a value on a multi option {0} which is a slave" msgstr "" -#: tiramisu/value.py:835 +#: tiramisu/value.py:839 msgid "cannot sort multi option {0} if master or slave" msgstr "" -#: tiramisu/value.py:839 +#: tiramisu/value.py:843 msgid "cmp is not permitted in python v3 or greater" msgstr "" -#: tiramisu/value.py:848 +#: tiramisu/value.py:852 msgid "cannot reverse multi option {0} if master or slave" msgstr "" -#: tiramisu/value.py:855 +#: tiramisu/value.py:859 msgid "cannot insert multi option {0} if master or slave" msgstr "" -#: tiramisu/value.py:872 +#: tiramisu/value.py:876 msgid "cannot extend multi option {0} if master or slave" msgstr "" -#: tiramisu/value.py:912 +#: tiramisu/value.py:916 msgid "cannot pop a value on a multi option {0} which is a slave" msgstr ""