reset cache when permissive is added

This commit is contained in:
Emmanuel Garette 2017-04-20 11:20:37 +02:00
parent 9a5b8a5f63
commit 6ca3e236f9
4 changed files with 175 additions and 152 deletions

View File

@ -4,7 +4,7 @@ do_autopath()
from py.test import raises 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.config import Config
from tiramisu.error import PropertiesOptionError from tiramisu.error import PropertiesOptionError
@ -199,3 +199,16 @@ def test_invalid_option_permissive():
setting = config.cfgimpl_get_settings() setting = config.cfgimpl_get_settings()
config.read_write() config.read_write()
raises(TypeError, "setting.setpermissive(['frozen', 'disabled',], u1)") 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")

View File

@ -303,6 +303,9 @@ class Property(object):
def __repr__(self): def __repr__(self):
return str(list(self._properties)) return str(list(self._properties))
def get(self):
return tuple(self._properties)
#____________________________________________________________ #____________________________________________________________
class Settings(object): class Settings(object):
@ -505,7 +508,7 @@ class Settings(object):
opt_type = 'option' opt_type = 'option'
if 'frozen' in properties: if 'frozen' in properties:
return PropertiesOptionError(_('cannot change the value for ' return PropertiesOptionError(_('cannot change the value for '
'option {0} this option is' 'option "{0}" this option is'
' frozen').format( ' frozen').format(
opt_or_descr.impl_getname()), opt_or_descr.impl_getname()),
props, self, datas, opt_type) props, self, datas, opt_type)
@ -538,6 +541,7 @@ class Settings(object):
if not isinstance(permissive, tuple): # pragma: optional cover if not isinstance(permissive, tuple): # pragma: optional cover
raise TypeError(_('permissive must be a tuple')) raise TypeError(_('permissive must be a tuple'))
self._p_.setpermissive(path, permissive) self._p_.setpermissive(path, permissive)
self._getcontext().cfgimpl_reset_cache()
#____________________________________________________________ #____________________________________________________________
def setowner(self, owner): def setowner(self, owner):

View File

@ -2,7 +2,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: Tiramisu\n" "Project-Id-Version: Tiramisu\n"
"Report-Msgid-Bugs-To: \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" "PO-Revision-Date: \n"
"Last-Translator: Emmanuel Garette <egarette@cadoles.com>\n" "Last-Translator: Emmanuel Garette <egarette@cadoles.com>\n"
"Language-Team: Tiramisu's team <egarette@cadoles.com>\n" "Language-Team: Tiramisu's team <egarette@cadoles.com>\n"
@ -10,7 +10,7 @@ msgstr ""
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\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" "Plural-Forms: nplurals=2; plural=(n > 1);\n"
"X-Poedit-SourceCharset: UTF-8\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}" msgid "unknown group_type: {0}"
msgstr "group_type inconnu: {0}" msgstr "group_type inconnu: {0}"
#: tiramisu/config.py:187 tiramisu/setting.py:335 tiramisu/value.py:54 #: tiramisu/config.py:187 tiramisu/setting.py:338 tiramisu/value.py:54
#: tiramisu/value.py:756 #: tiramisu/value.py:757
msgid "the context does not exist anymore" msgid "the context does not exist anymore"
msgstr "le context n'existe plus" msgstr "le context n'existe plus"
@ -149,11 +149,11 @@ msgstr "ou"
msgid " {} " msgid " {} "
msgstr " {} " msgstr " {} "
#: tiramisu/error.py:81 tiramisu/setting.py:514 #: tiramisu/error.py:81 tiramisu/setting.py:517
msgid "property" msgid "property"
msgstr "de la propriété" msgstr "de la propriété"
#: tiramisu/error.py:83 tiramisu/setting.py:516 #: tiramisu/error.py:83 tiramisu/setting.py:519
msgid "properties" msgid "properties"
msgstr "des propriétés" 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}" msgid "cannot access to {0} \"{1}\" because \"{2}\" has {3} {4}"
msgstr "ne peut accéder à {0} \"{1}\" parce que \"{2}\" a {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}" msgid "cannot access to {0} \"{1}\" because has {2} {3}"
msgstr "ne peut accéder à l'{0} \"{1}\" a cause {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}\", " "attention, \"{0}\" peut être une option de type {1} invalide pour \"{2}\", "
"{3}" "{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 \"{}\"" msgid "invalid value \"{}\", this value is already in \"{}\""
msgstr "valeur invalide \"{}\", cette valeur est déjà dans \"{}\"" 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" msgid "do_validation for {0}: error in value"
msgstr "do_validation for {0} : erreur dans un la valeur" 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" msgid "invalid value \"{0}\" for \"{1}\" which must be a list"
msgstr "valeur invalide \"{0}\" pour \"{1}\" qui doit être une liste" 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" msgid "invalid value \"{}\" for \"{}\" which must not be a list"
msgstr "valeur invalide \"{0}\" pour \"{1}\" qui ne doit pas être une liste" 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" 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" 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" msgid "cannot add consistency with submulti option"
msgstr "ne peut ajouter de test de consistence a une option submulti" 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" msgid "consistency must be set with an option"
msgstr "consistency doit être configuré avec une 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 "" msgid ""
"almost one option in consistency is in a dynoptiondescription but not all" "almost one option in consistency is in a dynoptiondescription but not all"
msgstr "" msgstr ""
"au moins une option dans le test de consistance est dans une " "au moins une option dans le test de consistance est dans une "
"dynoptiondescription mais pas toutes" "dynoptiondescription mais pas toutes"
#: tiramisu/option/baseoption.py:744 #: tiramisu/option/baseoption.py:750
msgid "option in consistency must be in same dynoptiondescription" msgid "option in consistency must be in same dynoptiondescription"
msgstr "" msgstr ""
"option dans une consistency doit être dans le même dynoptiondescription" "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" msgid "cannot add consistency with itself"
msgstr "ne peut ajouter une consistency avec lui même" 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" msgid "every options in consistency must be multi or none"
msgstr "" msgstr ""
"toutes les options d'une consistency doivent être multi ou ne pas l'être" "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" msgid "'{0}' ({1}) cannot add consistency, option is read-only"
msgstr "" msgstr ""
"'{0}' ({1}) ne peut ajouter de consistency, l'option est en lecture seul" "'{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" msgid "consistency {0} not available for this option"
msgstr "consistency {0} non valable pour cette 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" msgid "unknow parameter {0} in consistency"
msgstr "paramètre inconnu {0} dans un test de consistance" 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" msgid "_cons_not_equal: {} are not different"
msgstr "_cons_not_equal: {} sont différents" 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 {}" msgid "should be different from the value of {}"
msgstr "devrait être différent de la valeur de {}" 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 {}" msgid "must be different from the value of {}"
msgstr "doit être différent de la valeur de {}" 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" msgid "value for {} should be different"
msgstr "valeur pour {} devrait être différent" msgstr "valeur pour {} devrait être différent"
#: tiramisu/option/baseoption.py:855 #: tiramisu/option/baseoption.py:863
msgid "value for {} must be different" msgid "value for {} must be different"
msgstr "valeur pour {} doit être différent" 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" 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" 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" msgid "malformed requirements type for option: {0}, must be a dict"
msgstr "" msgstr ""
"type requirements malformé pour l'option : {0}, doit être un dictionnaire" "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}" msgid "malformed requirements for option: {0} unknown keys {1}, must only {2}"
msgstr "" msgstr ""
"requirements mal formés pour l'option : {0} clefs inconnues {1}, doit " "requirements mal formés pour l'option : {0} clefs inconnues {1}, doit "
"seulement avoir {2}" "seulement avoir {2}"
#: tiramisu/option/baseoption.py:948 #: tiramisu/option/baseoption.py:956
msgid "" msgid ""
"malformed requirements for option: {0} require must have option, expected " "malformed requirements for option: {0} require must have option, expected "
"and action keys" "and action keys"
@ -372,33 +372,33 @@ msgstr ""
"requirements malformé pour l'option : {0} l'exigence doit avoir les clefs " "requirements malformé pour l'option : {0} l'exigence doit avoir les clefs "
"option, expected et action" "option, expected et action"
#: tiramisu/option/baseoption.py:955 #: tiramisu/option/baseoption.py:963
msgid "" msgid ""
"malformed requirements for option: {0} action cannot be force_store_value" "malformed requirements for option: {0} action cannot be force_store_value"
msgstr "" msgstr ""
"requirements mal formés pour l'option : {0} action ne peut pas être " "requirements mal formés pour l'option : {0} action ne peut pas être "
"force_store_value" "force_store_value"
#: tiramisu/option/baseoption.py:960 #: tiramisu/option/baseoption.py:968
msgid "malformed requirements for option: {0} inverse must be boolean" msgid "malformed requirements for option: {0} inverse must be boolean"
msgstr "" msgstr ""
"requirements mal formés pour l'option : {0} inverse doit être un booléen" "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" msgid "malformed requirements for option: {0} transitive must be boolean"
msgstr "" msgstr ""
"requirements mal formés pour l'option : {0} transitive doit être booléen" "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" msgid "malformed requirements for option: {0} same_action must be boolean"
msgstr "" msgstr ""
"requirements mal formés pour l'option : {0} same_action doit être un booléen" "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}" msgid "malformed requirements must be an option in option {0}"
msgstr "requirements mal formés doit être une option dans l'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 "" msgid ""
"malformed requirements multi option must not set as requires of non multi " "malformed requirements multi option must not set as requires of non multi "
"option {0}" "option {0}"
@ -406,12 +406,12 @@ msgstr ""
"requirements mal formés une option multiple ne doit pas être spécifié comme " "requirements mal formés une option multiple ne doit pas être spécifié comme "
"pré-requis à l'option non multiple {0}" "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}" msgid "malformed requirements expected value must be valid for option {0}: {1}"
msgstr "" msgstr ""
"valeur de \"expected\" malformé, doit être valide pour l'option {0} : {1}" "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}" msgid "malformed symlinkoption must be an option for symlink {0}"
msgstr "symlinkoption mal formé, doit être une option pour 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" msgid "allow_without_dot must be a boolean"
msgstr "allow_without_dot doit être un booléen" msgstr "allow_without_dot doit être un booléen"
#: tiramisu/option/option.py:490 #: tiramisu/option/option.py:510
msgid "invalid length (min 1)" msgid "invalid length (min 1)"
msgstr "longueur invalide (min 1)" msgstr "longueur invalide (min 1)"
#: tiramisu/option/option.py:492 #: tiramisu/option/option.py:512
msgid "invalid length (max {0})" msgid "invalid length (max {0})"
msgstr "longueur invalide (max {0})" msgstr "longueur invalide (max {0})"
#: tiramisu/option/option.py:507 #: tiramisu/option/option.py:527
msgid "must not be an IP" msgid "must not be an IP"
msgstr "ne doit pas être une IP" msgstr "ne doit pas être une IP"
#: tiramisu/option/option.py:514 #: tiramisu/option/option.py:531
msgid "must have dot" msgid "must have dot"
msgstr "doit avec un point" msgstr "doit avec un point"
#: tiramisu/option/option.py:516 #: tiramisu/option/option.py:533
msgid "invalid length (max 255)" msgid "invalid length (max 255)"
msgstr "longueur invalide (max 255)" msgstr "longueur invalide (max 255)"
#: tiramisu/option/option.py:527 #: tiramisu/option/option.py:543
msgid "some characters are uppercase" msgid "some characters are uppercase"
msgstr "des caractères sont en majuscule" msgstr "des caractères sont en majuscule"
#: tiramisu/option/option.py:530 #: tiramisu/option/option.py:546
msgid "some characters may cause problems" msgid "some characters may cause problems"
msgstr "des caractères peuvent poser problèmes" msgstr "des caractères peuvent poser problèmes"
#: tiramisu/option/option.py:551 #: tiramisu/option/option.py:555
msgid "URL" msgid "URL"
msgstr "URL" msgstr "URL"
#: tiramisu/option/option.py:559 #: tiramisu/option/option.py:563
msgid "must start with http:// or https://" msgid "must start with http:// or https://"
msgstr "doit débuter par http:// ou 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" msgid "port must be an between 0 and 65536"
msgstr "port doit être entre 0 et 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" msgid "must ends with a valid resource name"
msgstr "doit finir par un nom de ressource valide" msgstr "doit finir par un nom de ressource valide"
#: tiramisu/option/option.py:609 #: tiramisu/option/option.py:613
msgid "email address" msgid "email address"
msgstr "adresse mail" msgstr "adresse mail"
#: tiramisu/option/option.py:616 #: tiramisu/option/option.py:620
msgid "username" msgid "username"
msgstr "nom d'utilisateur" msgstr "nom d'utilisateur"
#: tiramisu/option/option.py:622 #: tiramisu/option/option.py:626
msgid "file name" msgid "file name"
msgstr "nom de fichier" msgstr "nom de fichier"
#: tiramisu/option/option.py:627 #: tiramisu/option/option.py:631
msgid "date" msgid "date"
msgstr "date" msgstr "date"
@ -767,37 +767,38 @@ msgstr ""
"ne peut ajouter la propriété {0} dans l'option {1}: cette propriété est " "ne peut ajouter la propriété {0} dans l'option {1}: cette propriété est "
"calculée" "calculée"
#: tiramisu/setting.py:269 tiramisu/setting.py:435 #: tiramisu/setting.py:269 tiramisu/setting.py:438
msgid "cannot add those properties: {0}" msgid "cannot add those properties: {0}"
msgstr "ne peut pas ajouter ces propriétés : {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" msgid "you should only append/remove properties"
msgstr "pour pouvait seulement ajouter/supprimer des propriétés" 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" 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" 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" msgid "if opt is not None, path should not be None in _getproperties"
msgstr "" msgstr ""
"si opt n'est pas None, path devrait ne pas être à None dans _getproperties" "si opt n'est pas None, path devrait ne pas être à None dans _getproperties"
#: tiramisu/setting.py:507 #: tiramisu/setting.py:510
msgid "cannot change the value for option {0} this option is frozen" msgid "cannot change the value for option \"{0}\" this option is frozen"
msgstr "" 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" msgid "permissive must be a tuple"
msgstr "permissive doit être un 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}" msgid "invalid generic owner {0}"
msgstr "invalide owner générique {0}" msgstr "invalide owner générique {0}"
#: tiramisu/setting.py:647 #: tiramisu/setting.py:650
msgid "" msgid ""
"malformed requirements imbrication detected for option: '{0}' with " "malformed requirements imbrication detected for option: '{0}' with "
"requirement on: '{1}'" "requirement on: '{1}'"
@ -805,15 +806,15 @@ msgstr ""
"imbrication de requirements mal formés detectée pour l'option : '{0}' avec " "imbrication de requirements mal formés detectée pour l'option : '{0}' avec "
"requirement sur : '{1}'" "requirement sur : '{1}'"
#: tiramisu/setting.py:672 #: tiramisu/setting.py:675
msgid "option '{0}' has requirement's property error: {1} {2}" 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}" 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}\"" msgid "the value of \"{0}\" is \"{1}\""
msgstr "la valeur de \"{0}\" est \"{1}\"" msgstr "la valeur de \"{0}\" est \"{1}\""
#: tiramisu/setting.py:696 #: tiramisu/setting.py:699
msgid "the value of \"{0}\" is not \"{1}\"" msgid "the value of \"{0}\" is not \"{1}\""
msgstr "la valeur de \"{0}\" n'est pas \"{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}" msgid "information's item not found {0}"
msgstr "l'information de l'objet ne sont pas trouvé {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" msgid "you should only set value with config"
msgstr "vous devez seul affecter une valeur avec un 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" msgid "owner only avalaible for an option"
msgstr "owner seulement possible pour une 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}" msgid "no value for {0} cannot change owner to {1}"
msgstr "pas de valeur pour {0} ne peut changer d'utilisateur pour {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" msgid "can force cache only if cache is actived in config"
msgstr "" msgstr ""
"peut force la mise en cache seulement si le cache est activé dans la config" "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 " msgid "{0} is already a Multi "
msgstr "{0} est déjà une 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" 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" 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" 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" 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" msgid "cmp is not permitted in python v3 or greater"
msgstr "cmp n'est pas permis en python v3 ou supérieure" 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" 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" 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" 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" 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" 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" 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" 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" 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}\"" #~ msgid "function \"{0}\" returns \"{1}\" for option \"{2}\""
#~ msgstr "la fonction \"{0}\" retourne \"{1}\" pour l'option \"{2}\"" #~ msgstr "la fonction \"{0}\" retourne \"{1}\" pour l'option \"{2}\""

View File

@ -5,7 +5,7 @@
msgid "" msgid ""
msgstr "" msgstr ""
"Project-Id-Version: PACKAGE VERSION\n" "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" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n" "Language-Team: LANGUAGE <LL@li.org>\n"
@ -39,8 +39,8 @@ msgstr ""
msgid "unknown group_type: {0}" msgid "unknown group_type: {0}"
msgstr "" msgstr ""
#: tiramisu/config.py:187 tiramisu/setting.py:335 tiramisu/value.py:54 #: tiramisu/config.py:187 tiramisu/setting.py:338 tiramisu/value.py:54
#: tiramisu/value.py:756 #: tiramisu/value.py:757
msgid "the context does not exist anymore" msgid "the context does not exist anymore"
msgstr "" msgstr ""
@ -132,11 +132,11 @@ msgstr ""
msgid " {} " msgid " {} "
msgstr "" msgstr ""
#: tiramisu/error.py:81 tiramisu/setting.py:514 #: tiramisu/error.py:81 tiramisu/setting.py:517
msgid "property" msgid "property"
msgstr "" msgstr ""
#: tiramisu/error.py:83 tiramisu/setting.py:516 #: tiramisu/error.py:83 tiramisu/setting.py:519
msgid "properties" msgid "properties"
msgstr "" msgstr ""
@ -144,7 +144,7 @@ msgstr ""
msgid "cannot access to {0} \"{1}\" because \"{2}\" has {3} {4}" msgid "cannot access to {0} \"{1}\" because \"{2}\" has {3} {4}"
msgstr "" 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}" msgid "cannot access to {0} \"{1}\" because has {2} {3}"
msgstr "" msgstr ""
@ -232,7 +232,7 @@ msgstr ""
msgid "attention, \"{0}\" could be an invalid {1} for \"{2}\", {3}" msgid "attention, \"{0}\" could be an invalid {1} for \"{2}\", {3}"
msgstr "" 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 \"{}\"" msgid "invalid value \"{}\", this value is already in \"{}\""
msgstr "" msgstr ""
@ -248,7 +248,7 @@ msgstr ""
msgid "do_validation for {0}: error in value" msgid "do_validation for {0}: error in value"
msgstr "" 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" msgid "invalid value \"{0}\" for \"{1}\" which must be a list"
msgstr "" msgstr ""
@ -256,111 +256,111 @@ msgstr ""
msgid "invalid value \"{}\" for \"{}\" which must not be a list" msgid "invalid value \"{}\" for \"{}\" which must not be a list"
msgstr "" msgstr ""
#: tiramisu/option/baseoption.py:679 #: tiramisu/option/baseoption.py:685
msgid "invalid value \"{0}\" for \"{1}\" which must be a list of list" msgid "invalid value \"{0}\" for \"{1}\" which must be a list of list"
msgstr "" 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" msgid "cannot add consistency with submulti option"
msgstr "" msgstr ""
#: tiramisu/option/baseoption.py:738 #: tiramisu/option/baseoption.py:744
msgid "consistency must be set with an option" msgid "consistency must be set with an option"
msgstr "" 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" msgid "almost one option in consistency is in a dynoptiondescription but not all"
msgstr "" msgstr ""
#: tiramisu/option/baseoption.py:744 #: tiramisu/option/baseoption.py:750
msgid "option in consistency must be in same dynoptiondescription" msgid "option in consistency must be in same dynoptiondescription"
msgstr "" msgstr ""
#: tiramisu/option/baseoption.py:751 #: tiramisu/option/baseoption.py:757
msgid "cannot add consistency with itself" msgid "cannot add consistency with itself"
msgstr "" msgstr ""
#: tiramisu/option/baseoption.py:753 #: tiramisu/option/baseoption.py:759
msgid "every options in consistency must be multi or none" msgid "every options in consistency must be multi or none"
msgstr "" msgstr ""
#: tiramisu/option/baseoption.py:770 #: tiramisu/option/baseoption.py:777
msgid "'{0}' ({1}) cannot add consistency, option is read-only" msgid "'{0}' ({1}) cannot add consistency, option is read-only"
msgstr "" msgstr ""
#: tiramisu/option/baseoption.py:777 #: tiramisu/option/baseoption.py:784
msgid "consistency {0} not available for this option" msgid "consistency {0} not available for this option"
msgstr "" msgstr ""
#: tiramisu/option/baseoption.py:781 #: tiramisu/option/baseoption.py:788
msgid "unknow parameter {0} in consistency" msgid "unknow parameter {0} in consistency"
msgstr "" msgstr ""
#: tiramisu/option/baseoption.py:845 #: tiramisu/option/baseoption.py:853
msgid "_cons_not_equal: {} are not different" msgid "_cons_not_equal: {} are not different"
msgstr "" msgstr ""
#: tiramisu/option/baseoption.py:848 #: tiramisu/option/baseoption.py:856
msgid "should be different from the value of {}" msgid "should be different from the value of {}"
msgstr "" msgstr ""
#: tiramisu/option/baseoption.py:850 #: tiramisu/option/baseoption.py:858
msgid "must be different from the value of {}" msgid "must be different from the value of {}"
msgstr "" msgstr ""
#: tiramisu/option/baseoption.py:853 #: tiramisu/option/baseoption.py:861
msgid "value for {} should be different" msgid "value for {} should be different"
msgstr "" msgstr ""
#: tiramisu/option/baseoption.py:855 #: tiramisu/option/baseoption.py:863
msgid "value for {} must be different" msgid "value for {} must be different"
msgstr "" msgstr ""
#: tiramisu/option/baseoption.py:914 #: tiramisu/option/baseoption.py:922
msgid "default value not allowed if option: {0} is calculated" msgid "default value not allowed if option: {0} is calculated"
msgstr "" msgstr ""
#: tiramisu/option/baseoption.py:934 #: tiramisu/option/baseoption.py:942
msgid "malformed requirements type for option: {0}, must be a dict" msgid "malformed requirements type for option: {0}, must be a dict"
msgstr "" msgstr ""
#: tiramisu/option/baseoption.py:940 #: tiramisu/option/baseoption.py:948
msgid "malformed requirements for option: {0} unknown keys {1}, must only {2}" msgid "malformed requirements for option: {0} unknown keys {1}, must only {2}"
msgstr "" 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" msgid "malformed requirements for option: {0} require must have option, expected and action keys"
msgstr "" msgstr ""
#: tiramisu/option/baseoption.py:955 #: tiramisu/option/baseoption.py:963
msgid "malformed requirements for option: {0} action cannot be force_store_value" msgid "malformed requirements for option: {0} action cannot be force_store_value"
msgstr "" msgstr ""
#: tiramisu/option/baseoption.py:960 #: tiramisu/option/baseoption.py:968
msgid "malformed requirements for option: {0} inverse must be boolean" msgid "malformed requirements for option: {0} inverse must be boolean"
msgstr "" msgstr ""
#: tiramisu/option/baseoption.py:964 #: tiramisu/option/baseoption.py:972
msgid "malformed requirements for option: {0} transitive must be boolean" msgid "malformed requirements for option: {0} transitive must be boolean"
msgstr "" msgstr ""
#: tiramisu/option/baseoption.py:968 #: tiramisu/option/baseoption.py:976
msgid "malformed requirements for option: {0} same_action must be boolean" msgid "malformed requirements for option: {0} same_action must be boolean"
msgstr "" msgstr ""
#: tiramisu/option/baseoption.py:972 #: tiramisu/option/baseoption.py:980
msgid "malformed requirements must be an option in option {0}" msgid "malformed requirements must be an option in option {0}"
msgstr "" 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}" msgid "malformed requirements multi option must not set as requires of non multi option {0}"
msgstr "" msgstr ""
#: tiramisu/option/baseoption.py:981 #: tiramisu/option/baseoption.py:989
msgid "malformed requirements expected value must be valid for option {0}: {1}" msgid "malformed requirements expected value must be valid for option {0}: {1}"
msgstr "" msgstr ""
#: tiramisu/option/baseoption.py:1011 #: tiramisu/option/baseoption.py:1019
msgid "malformed symlinkoption must be an option for symlink {0}" msgid "malformed symlinkoption must be an option for symlink {0}"
msgstr "" msgstr ""
@ -536,63 +536,63 @@ msgstr ""
msgid "allow_without_dot must be a boolean" msgid "allow_without_dot must be a boolean"
msgstr "" msgstr ""
#: tiramisu/option/option.py:490 #: tiramisu/option/option.py:510
msgid "invalid length (min 1)" msgid "invalid length (min 1)"
msgstr "" msgstr ""
#: tiramisu/option/option.py:492 #: tiramisu/option/option.py:512
msgid "invalid length (max {0})" msgid "invalid length (max {0})"
msgstr "" msgstr ""
#: tiramisu/option/option.py:507 #: tiramisu/option/option.py:527
msgid "must not be an IP" msgid "must not be an IP"
msgstr "" msgstr ""
#: tiramisu/option/option.py:514 #: tiramisu/option/option.py:531
msgid "must have dot" msgid "must have dot"
msgstr "" msgstr ""
#: tiramisu/option/option.py:516 #: tiramisu/option/option.py:533
msgid "invalid length (max 255)" msgid "invalid length (max 255)"
msgstr "" msgstr ""
#: tiramisu/option/option.py:527 #: tiramisu/option/option.py:543
msgid "some characters are uppercase" msgid "some characters are uppercase"
msgstr "" msgstr ""
#: tiramisu/option/option.py:530 #: tiramisu/option/option.py:546
msgid "some characters may cause problems" msgid "some characters may cause problems"
msgstr "" msgstr ""
#: tiramisu/option/option.py:551 #: tiramisu/option/option.py:555
msgid "URL" msgid "URL"
msgstr "" msgstr ""
#: tiramisu/option/option.py:559 #: tiramisu/option/option.py:563
msgid "must start with http:// or https://" msgid "must start with http:// or https://"
msgstr "" msgstr ""
#: tiramisu/option/option.py:577 #: tiramisu/option/option.py:581
msgid "port must be an between 0 and 65536" msgid "port must be an between 0 and 65536"
msgstr "" msgstr ""
#: tiramisu/option/option.py:588 #: tiramisu/option/option.py:592
msgid "must ends with a valid resource name" msgid "must ends with a valid resource name"
msgstr "" msgstr ""
#: tiramisu/option/option.py:609 #: tiramisu/option/option.py:613
msgid "email address" msgid "email address"
msgstr "" msgstr ""
#: tiramisu/option/option.py:616 #: tiramisu/option/option.py:620
msgid "username" msgid "username"
msgstr "" msgstr ""
#: tiramisu/option/option.py:622 #: tiramisu/option/option.py:626
msgid "file name" msgid "file name"
msgstr "" msgstr ""
#: tiramisu/option/option.py:627 #: tiramisu/option/option.py:631
msgid "date" msgid "date"
msgstr "" msgstr ""
@ -697,47 +697,47 @@ msgstr ""
msgid "cannot append {0} property for option {1}: this property is calculated" msgid "cannot append {0} property for option {1}: this property is calculated"
msgstr "" msgstr ""
#: tiramisu/setting.py:269 tiramisu/setting.py:435 #: tiramisu/setting.py:269 tiramisu/setting.py:438
msgid "cannot add those properties: {0}" msgid "cannot add those properties: {0}"
msgstr "" msgstr ""
#: tiramisu/setting.py:358 #: tiramisu/setting.py:361
msgid "you should only append/remove properties" msgid "you should only append/remove properties"
msgstr "" msgstr ""
#: tiramisu/setting.py:362 #: tiramisu/setting.py:365
msgid "opt and all_properties must not be set together in reset" msgid "opt and all_properties must not be set together in reset"
msgstr "" msgstr ""
#: tiramisu/setting.py:383 #: tiramisu/setting.py:386
msgid "if opt is not None, path should not be None in _getproperties" msgid "if opt is not None, path should not be None in _getproperties"
msgstr "" msgstr ""
#: tiramisu/setting.py:507 #: tiramisu/setting.py:510
msgid "cannot change the value for option {0} this option is frozen" msgid "cannot change the value for option \"{0}\" this option is frozen"
msgstr "" msgstr ""
#: tiramisu/setting.py:539 #: tiramisu/setting.py:542
msgid "permissive must be a tuple" msgid "permissive must be a tuple"
msgstr "" msgstr ""
#: tiramisu/setting.py:546 tiramisu/value.py:546 #: tiramisu/setting.py:549 tiramisu/value.py:549
msgid "invalid generic owner {0}" msgid "invalid generic owner {0}"
msgstr "" msgstr ""
#: tiramisu/setting.py:647 #: tiramisu/setting.py:650
msgid "malformed requirements imbrication detected for option: '{0}' with requirement on: '{1}'" msgid "malformed requirements imbrication detected for option: '{0}' with requirement on: '{1}'"
msgstr "" msgstr ""
#: tiramisu/setting.py:672 #: tiramisu/setting.py:675
msgid "option '{0}' has requirement's property error: {1} {2}" msgid "option '{0}' has requirement's property error: {1} {2}"
msgstr "" msgstr ""
#: tiramisu/setting.py:694 #: tiramisu/setting.py:697
msgid "the value of \"{0}\" is \"{1}\"" msgid "the value of \"{0}\" is \"{1}\""
msgstr "" msgstr ""
#: tiramisu/setting.py:696 #: tiramisu/setting.py:699
msgid "the value of \"{0}\" is not \"{1}\"" msgid "the value of \"{0}\" is not \"{1}\""
msgstr "" msgstr ""
@ -813,51 +813,51 @@ msgstr ""
msgid "information's item not found {0}" msgid "information's item not found {0}"
msgstr "" msgstr ""
#: tiramisu/value.py:395 #: tiramisu/value.py:397
msgid "you should only set value with config" msgid "you should only set value with config"
msgstr "" msgstr ""
#: tiramisu/value.py:507 #: tiramisu/value.py:509
msgid "owner only avalaible for an option" msgid "owner only avalaible for an option"
msgstr "" msgstr ""
#: tiramisu/value.py:551 #: tiramisu/value.py:554
msgid "no value for {0} cannot change owner to {1}" msgid "no value for {0} cannot change owner to {1}"
msgstr "" msgstr ""
#: tiramisu/value.py:685 #: tiramisu/value.py:686
msgid "can force cache only if cache is actived in config" msgid "can force cache only if cache is actived in config"
msgstr "" msgstr ""
#: tiramisu/value.py:722 #: tiramisu/value.py:723
msgid "{0} is already a Multi " msgid "{0} is already a Multi "
msgstr "" msgstr ""
#: tiramisu/value.py:802 #: tiramisu/value.py:806
msgid "cannot append a value on a multi option {0} which is a slave" msgid "cannot append a value on a multi option {0} which is a slave"
msgstr "" msgstr ""
#: tiramisu/value.py:835 #: tiramisu/value.py:839
msgid "cannot sort multi option {0} if master or slave" msgid "cannot sort multi option {0} if master or slave"
msgstr "" msgstr ""
#: tiramisu/value.py:839 #: tiramisu/value.py:843
msgid "cmp is not permitted in python v3 or greater" msgid "cmp is not permitted in python v3 or greater"
msgstr "" msgstr ""
#: tiramisu/value.py:848 #: tiramisu/value.py:852
msgid "cannot reverse multi option {0} if master or slave" msgid "cannot reverse multi option {0} if master or slave"
msgstr "" msgstr ""
#: tiramisu/value.py:855 #: tiramisu/value.py:859
msgid "cannot insert multi option {0} if master or slave" msgid "cannot insert multi option {0} if master or slave"
msgstr "" msgstr ""
#: tiramisu/value.py:872 #: tiramisu/value.py:876
msgid "cannot extend multi option {0} if master or slave" msgid "cannot extend multi option {0} if master or slave"
msgstr "" msgstr ""
#: tiramisu/value.py:912 #: tiramisu/value.py:916
msgid "cannot pop a value on a multi option {0} which is a slave" msgid "cannot pop a value on a multi option {0} which is a slave"
msgstr "" msgstr ""