Merge branch 'master' of ssh://git.labs.libre-entreprise.org/gitroot/tiramisu
This commit is contained in:
commit
5ba97c5928
@ -28,6 +28,12 @@ def return_value(value=None):
|
||||
return value
|
||||
|
||||
|
||||
def return_value2(*args, **kwargs):
|
||||
value = list(args)
|
||||
value.extend(kwargs.values())
|
||||
return value
|
||||
|
||||
|
||||
def make_description():
|
||||
gcoption = ChoiceOption('name', 'GC name', ('ref', 'framework'), 'ref')
|
||||
gcdummy = BoolOption('dummy', 'dummy', default=False)
|
||||
@ -675,3 +681,13 @@ def test_callback_multi_multi():
|
||||
raises(ConfigError, "cfg.val4")
|
||||
assert cfg.val5 == ['val1', 'val4', 'val2', 'val4', 'val3', 'val4']
|
||||
assert cfg.val7 == ['val1', 'val21', 'val2', 'val22', 'val3', 'val23']
|
||||
|
||||
|
||||
def test_multi_with_no_value():
|
||||
#First option return [] (so without value)
|
||||
val1 = StrOption('val1', "", ['val'], multi=True)
|
||||
val2 = StrOption('val2', "", multi=True)
|
||||
val3 = StrOption('val3', '', multi=True, callback=return_value, callback_params={'': ((val2, False),), 'value': ((val1, False),)})
|
||||
od = OptionDescription('od', '', [val1, val2, val3])
|
||||
c = Config(od)
|
||||
raises(ConfigError, "c.val3")
|
||||
|
@ -41,6 +41,13 @@ def carry_out_calculation(name, config, callback, callback_params,
|
||||
:param max_len: max length for a multi
|
||||
:type max_len: int
|
||||
|
||||
The callback_params is a dict. Key is used to build args (if key is '')
|
||||
and kwargs (otherwise). Values are tuple of:
|
||||
- values
|
||||
- tuple with option and boolean's force_permissive (True when don't raise
|
||||
if PropertiesOptionError)
|
||||
Values could have multiple values only when key is ''.
|
||||
|
||||
* if no callback_params:
|
||||
=> calculate()
|
||||
|
||||
@ -92,7 +99,6 @@ def carry_out_calculation(name, config, callback, callback_params,
|
||||
- a multi option with an other multi option but with same length
|
||||
opt1 == [1, 2, 3]
|
||||
opt2 == [11, 12, 13]
|
||||
callback_params={'': ((opt1, False), (opt2, False))}
|
||||
=> calculate(1, 11)
|
||||
=> calculate(2, 12)
|
||||
=> calculate(3, 13)
|
||||
@ -100,9 +106,13 @@ def carry_out_calculation(name, config, callback, callback_params,
|
||||
- a multi option with an other multi option but with different length
|
||||
opt1 == [1, 2, 3]
|
||||
opt2 == [11, 12]
|
||||
callback_params={'': ((opt1, False), (opt2, False))}
|
||||
=> ConfigError()
|
||||
|
||||
- a multi option without value with a simple option
|
||||
opt1 == []
|
||||
opt2 == 11
|
||||
=> []
|
||||
|
||||
* if callback_params={'value': ((opt1, False), (opt2, False))}
|
||||
=> ConfigError()
|
||||
|
||||
@ -114,39 +124,47 @@ def carry_out_calculation(name, config, callback, callback_params,
|
||||
If calculate return list, this list is extend to return value.
|
||||
"""
|
||||
tcparams = {}
|
||||
# if callback_params has a callback, launch several time calculate()
|
||||
one_is_multi = False
|
||||
len_multi = 0
|
||||
# multi's option should have same value for all option
|
||||
len_multi = None
|
||||
|
||||
for key, callbacks in callback_params.items():
|
||||
for callbk in callbacks:
|
||||
if isinstance(callbk, tuple):
|
||||
# callbk is something link (opt, True|False)
|
||||
option, force_permissive = callbk
|
||||
path = config.cfgimpl_get_description().impl_get_path_by_opt(
|
||||
option)
|
||||
# get value
|
||||
try:
|
||||
path = config.cfgimpl_get_description().impl_get_path_by_opt(option)
|
||||
value = config._getattr(path, force_permissive=True)
|
||||
except PropertiesOptionError as err:
|
||||
if force_permissive:
|
||||
continue
|
||||
raise ConfigError(_('unable to carry out a calculation, '
|
||||
'option {0} has properties: {1} for: '
|
||||
'{2}').format(option._name, err.proptype,
|
||||
'{2}').format(option._name,
|
||||
err.proptype,
|
||||
name))
|
||||
is_multi = option.impl_is_multi()
|
||||
if is_multi:
|
||||
if value is not None:
|
||||
len_value = len(value)
|
||||
if len_multi != 0 and len_multi != len_value:
|
||||
raise ConfigError(_('unable to carry out a '
|
||||
'calculation, option value with'
|
||||
' multi types must have same '
|
||||
'length for: {0}').format(name))
|
||||
len_multi = len_value
|
||||
len_value = len(value)
|
||||
if len_multi is not None and len_multi != len_value:
|
||||
raise ConfigError(_('unable to carry out a '
|
||||
'calculation, option value with'
|
||||
' multi types must have same '
|
||||
'length for: {0}').format(name))
|
||||
len_multi = len_value
|
||||
one_is_multi = True
|
||||
tcparams.setdefault(key, []).append((value, is_multi))
|
||||
else:
|
||||
# callbk is a value and not a multi
|
||||
tcparams.setdefault(key, []).append((callbk, False))
|
||||
|
||||
# if one value is a multi, launch several time calculate
|
||||
# if index is set, return a value
|
||||
# if no index, return a list
|
||||
if one_is_multi:
|
||||
ret = []
|
||||
if index:
|
||||
@ -161,19 +179,20 @@ def carry_out_calculation(name, config, callback, callback_params,
|
||||
else:
|
||||
range_ = range(len_multi)
|
||||
for incr in range_:
|
||||
tcp = {}
|
||||
params = []
|
||||
args = []
|
||||
kwargs = {}
|
||||
for key, couples in tcparams.items():
|
||||
for couple in couples:
|
||||
value, ismulti = couple
|
||||
if ismulti and value is not None:
|
||||
if key == '':
|
||||
params.append(value[incr])
|
||||
else:
|
||||
tcp[key] = value[incr]
|
||||
if ismulti:
|
||||
val = value[incr]
|
||||
else:
|
||||
params.append(value)
|
||||
calc = calculate(name, callback, params, tcp)
|
||||
val = value
|
||||
if key == '':
|
||||
args.append(val)
|
||||
else:
|
||||
kwargs[key] = val
|
||||
calc = calculate(callback, args, kwargs)
|
||||
if index:
|
||||
ret = calc
|
||||
else:
|
||||
@ -183,24 +202,26 @@ def carry_out_calculation(name, config, callback, callback_params,
|
||||
ret.append(calc)
|
||||
return ret
|
||||
else:
|
||||
tcp = {}
|
||||
params = []
|
||||
# no value is multi
|
||||
# return a single value
|
||||
args = []
|
||||
kwargs = {}
|
||||
for key, couples in tcparams.items():
|
||||
for couple in couples:
|
||||
# couple[1] (ismulti) is always False
|
||||
if key == '':
|
||||
value = couple[0]
|
||||
params.append(value)
|
||||
args.append(couple[0])
|
||||
else:
|
||||
tcp[key] = couple[0]
|
||||
return calculate(name, callback, params, tcp)
|
||||
kwargs[key] = couple[0]
|
||||
return calculate(callback, args, kwargs)
|
||||
|
||||
|
||||
def calculate(name, callback, params, tcparams):
|
||||
def calculate(callback, args, kwargs):
|
||||
"""wrapper that launches the 'callback'
|
||||
|
||||
:param callback: callback name
|
||||
:param params: in the callback's arity, the unnamed parameters
|
||||
:param tcparams: in the callback's arity, the named parameters
|
||||
:param callback: callback function
|
||||
:param args: in the callback's arity, the unnamed parameters
|
||||
:param kwargs: in the callback's arity, the named parameters
|
||||
|
||||
"""
|
||||
return callback(*params, **tcparams)
|
||||
return callback(*args, **kwargs)
|
||||
|
@ -1,5 +1,4 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
"options handler global entry point"
|
||||
# Copyright (C) 2012-2013 Team tiramisu (see AUTHORS for all contributors)
|
||||
#
|
||||
# This program is free software; you can redistribute it and/or modify
|
||||
@ -20,6 +19,7 @@
|
||||
# the rough pypy's guys: http://codespeak.net/svn/pypy/dist/pypy/config/
|
||||
# the whole pypy projet is under MIT licence
|
||||
# ____________________________________________________________
|
||||
"options handler global entry point"
|
||||
import weakref
|
||||
from tiramisu.error import PropertiesOptionError, ConfigError
|
||||
from tiramisu.option import OptionDescription, Option, SymLinkOption
|
||||
@ -31,7 +31,11 @@ from tiramisu.i18n import _
|
||||
|
||||
|
||||
class SubConfig(object):
|
||||
"sub configuration management entry"
|
||||
"""Sub configuration management entry.
|
||||
Tree if OptionDescription's responsability. SubConfig are generated
|
||||
on-demand. A Config is also a SubConfig.
|
||||
Root Config is call context below
|
||||
"""
|
||||
__slots__ = ('_impl_context', '_impl_descr', '_impl_path')
|
||||
|
||||
def __init__(self, descr, context, subpath=None):
|
||||
@ -56,6 +60,7 @@ class SubConfig(object):
|
||||
|
||||
def cfgimpl_reset_cache(self, only_expired=False, only=('values',
|
||||
'settings')):
|
||||
"remove cache (in context)"
|
||||
self._cfgimpl_get_context().cfgimpl_reset_cache(only_expired, only)
|
||||
|
||||
def cfgimpl_get_home_by_path(self, path, force_permissive=False,
|
||||
|
@ -1325,6 +1325,6 @@ def validate_callback(callback, callback_params, type_):
|
||||
).format(type_, type(option)))
|
||||
if force_permissive not in [True, False]:
|
||||
raise ValueError(_('{0}_params should have a boolean'
|
||||
'not a {0} for second argument'
|
||||
' not a {0} for second argument'
|
||||
).format(type_, type(
|
||||
force_permissive)))
|
||||
|
@ -2,7 +2,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: \n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2013-08-31 09:52+CEST\n"
|
||||
"POT-Creation-Date: 2013-09-23 20:59+CEST\n"
|
||||
"PO-Revision-Date: \n"
|
||||
"Last-Translator: Emmanuel Garette <egarette@cadoles.com>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
@ -11,18 +11,14 @@ msgstr ""
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Generator: Poedit 1.5.4\n"
|
||||
|
||||
#: tiramisu/autolib.py:58
|
||||
msgid "no config specified but needed"
|
||||
msgstr "aucune config spécifié alors que c'est nécessaire"
|
||||
|
||||
#: tiramisu/autolib.py:65
|
||||
#: tiramisu/autolib.py:131
|
||||
msgid ""
|
||||
"unable to carry out a calculation, option {0} has properties: {1} for: {2}"
|
||||
msgstr ""
|
||||
"impossible d'effectuer le calcul, l'option {0} a les propriétés : {1} pour : "
|
||||
"{2}"
|
||||
|
||||
#: tiramisu/autolib.py:74
|
||||
#: tiramisu/autolib.py:140
|
||||
msgid ""
|
||||
"unable to carry out a calculation, option value with multi types must have "
|
||||
"same length for: {0}"
|
||||
@ -30,79 +26,75 @@ msgstr ""
|
||||
"impossible d'effectuer le calcul, valeur d'un option avec le type multi doit "
|
||||
"avoir la même longueur pour : {0}"
|
||||
|
||||
#: tiramisu/config.py:47
|
||||
#: tiramisu/config.py:48
|
||||
msgid "descr must be an optiondescription, not {0}"
|
||||
msgstr "descr doit être une optiondescription pas un {0}"
|
||||
|
||||
#: tiramisu/config.py:121
|
||||
#: tiramisu/config.py:122
|
||||
msgid "unknown group_type: {0}"
|
||||
msgstr "group_type inconnu: {0}"
|
||||
|
||||
#: tiramisu/config.py:157
|
||||
#: tiramisu/config.py:158
|
||||
msgid ""
|
||||
"no option description found for this config (may be metaconfig without meta)"
|
||||
msgstr ""
|
||||
"pas d'option description pour cette config (peut être une metaconfig sans "
|
||||
"meta)"
|
||||
|
||||
#: tiramisu/config.py:311
|
||||
#: tiramisu/config.py:313
|
||||
msgid "unknown type_ type {0}for _find"
|
||||
msgstr "type_ type {0} pour _find inconnu"
|
||||
|
||||
#: tiramisu/config.py:350
|
||||
#: tiramisu/config.py:352
|
||||
msgid "no option found in config with these criteria"
|
||||
msgstr "aucune option trouvée dans la config avec ces critères"
|
||||
|
||||
#: tiramisu/config.py:400
|
||||
#: tiramisu/config.py:402
|
||||
msgid "make_dict can't filtering with value without option"
|
||||
msgstr "make_dict ne peut filtrer sur une valeur mais sans option"
|
||||
|
||||
#: tiramisu/config.py:421
|
||||
#: tiramisu/config.py:423
|
||||
msgid "unexpected path {0}, should start with {1}"
|
||||
msgstr "chemin imprévu {0}, devrait commencer par {1}"
|
||||
|
||||
#: tiramisu/config.py:481
|
||||
#: tiramisu/config.py:483
|
||||
msgid "opt in getowner must be an option not {0}"
|
||||
msgstr "opt dans getowner doit être une option pas {0}"
|
||||
|
||||
#: tiramisu/option.py:71
|
||||
msgid "{0} has no attribute impl_set_information"
|
||||
msgstr "{0} n'a pas d'attribut impl_set_information"
|
||||
|
||||
#: tiramisu/option.py:86
|
||||
msgid "information's item not found: {0}"
|
||||
msgstr "aucune config spécifié alors que c'est nécessaire"
|
||||
|
||||
#: tiramisu/option.py:89
|
||||
msgid "{0} has no attribute impl_get_information"
|
||||
msgstr "{0} n'a pas d'attribut impl_get_information"
|
||||
|
||||
#: tiramisu/option.py:117
|
||||
msgid "'{0}' ({1}) object attribute '{2}' is read-only"
|
||||
msgstr "l'attribut {2} de l'objet '{0}' ({1}) est en lecture seul"
|
||||
|
||||
#: tiramisu/option.py:159
|
||||
#: tiramisu/option.py:69
|
||||
msgid "invalid name: {0} for option"
|
||||
msgstr "nom invalide : {0} pour l'option"
|
||||
|
||||
#: tiramisu/option.py:169
|
||||
msgid "validator must be a function"
|
||||
msgstr "validator doit être une fonction"
|
||||
#: tiramisu/option.py:79
|
||||
msgid "invalid properties type {0} for {1}, must be a tuple"
|
||||
msgstr "type des properties invalide {0} pour {1}, doit être un tuple"
|
||||
|
||||
#: tiramisu/option.py:176
|
||||
#: tiramisu/option.py:121
|
||||
msgid "'{0}' ({1}) object attribute '{2}' is read-only"
|
||||
msgstr "l'attribut {2} de l'objet '{0}' ({1}) est en lecture seul"
|
||||
|
||||
#: tiramisu/option.py:148 tiramisu/value.py:361
|
||||
msgid "information's item not found: {0}"
|
||||
msgstr "aucune config spécifié alors que c'est nécessaire"
|
||||
|
||||
#: tiramisu/option.py:265
|
||||
msgid "cannot serialize Option, only in OptionDescription"
|
||||
msgstr "ne peut serialiser une Option, seulement via une OptionDescription"
|
||||
|
||||
#: tiramisu/option.py:364
|
||||
msgid "a default_multi is set whereas multi is False in option: {0}"
|
||||
msgstr ""
|
||||
"une default_multi est renseigné alors que multi est False dans l'option : {0}"
|
||||
|
||||
#: tiramisu/option.py:182
|
||||
#: tiramisu/option.py:370
|
||||
msgid "invalid default_multi value {0} for option {1}: {2}"
|
||||
msgstr "la valeur default_multi est invalide {0} pour l'option {1} : {2}"
|
||||
|
||||
#: tiramisu/option.py:187
|
||||
#: tiramisu/option.py:375
|
||||
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é"
|
||||
|
||||
#: tiramisu/option.py:190
|
||||
#: tiramisu/option.py:378
|
||||
msgid ""
|
||||
"params defined for a callback function but no callback defined yet for "
|
||||
"option {0}"
|
||||
@ -110,183 +102,179 @@ msgstr ""
|
||||
"params définit pour une fonction callback mais par de callback défini encore "
|
||||
"pour l'option {0}"
|
||||
|
||||
#: tiramisu/option.py:212 tiramisu/option.py:753
|
||||
msgid "invalid properties type {0} for {1}, must be a tuple"
|
||||
msgstr "type des properties invalide {0} pour {1}, doit être un tuple"
|
||||
#: tiramisu/option.py:463
|
||||
msgid "validator should return a boolean, not {0}"
|
||||
msgstr "validator devrait retourner un boolean, pas un {0}"
|
||||
|
||||
#: tiramisu/option.py:285
|
||||
#: tiramisu/option.py:473
|
||||
msgid "invalid value {0} for option {1} for object {2}"
|
||||
msgstr "valeur invalide {0} pour l'option {1} pour l'objet {2}"
|
||||
|
||||
#: tiramisu/option.py:293 tiramisu/value.py:468
|
||||
#: tiramisu/option.py:481 tiramisu/value.py:542
|
||||
msgid "invalid value {0} for option {1}: {2}"
|
||||
msgstr "valeur invalide {0} pour l'option {1} : {2}"
|
||||
|
||||
#: tiramisu/option.py:305
|
||||
#: tiramisu/option.py:493
|
||||
msgid "invalid value {0} for option {1} which must be a list"
|
||||
msgstr "valeur invalide {0} pour l'option {1} qui doit être une liste"
|
||||
|
||||
#: tiramisu/option.py:374
|
||||
#: tiramisu/option.py:562
|
||||
msgid "invalid value {0} for option {1} must be different as {2} option"
|
||||
msgstr ""
|
||||
"valeur invalide {0} pour l'option {1} doit être différent que l'option {2}"
|
||||
|
||||
#: tiramisu/option.py:396
|
||||
#: tiramisu/option.py:618
|
||||
msgid "values must be a tuple for {0}"
|
||||
msgstr "values doit être un tuple pour {0}"
|
||||
|
||||
#: tiramisu/option.py:399
|
||||
#: tiramisu/option.py:621
|
||||
msgid "open_values must be a boolean for {0}"
|
||||
msgstr "open_values doit être un booléen pour {0}"
|
||||
|
||||
#: tiramisu/option.py:420
|
||||
#: tiramisu/option.py:642
|
||||
msgid "value {0} is not permitted, only {1} is allowed"
|
||||
msgstr "valeur {0} n'est pas permit, seules {1} sont autorisées"
|
||||
|
||||
#: tiramisu/option.py:432
|
||||
#: tiramisu/option.py:654
|
||||
msgid "value must be a boolean"
|
||||
msgstr "valeur doit être un booléen"
|
||||
|
||||
#: tiramisu/option.py:442
|
||||
#: tiramisu/option.py:664
|
||||
msgid "value must be an integer"
|
||||
msgstr "valeur doit être un numbre"
|
||||
|
||||
#: tiramisu/option.py:452
|
||||
#: tiramisu/option.py:674
|
||||
msgid "value must be a float"
|
||||
msgstr "valeur doit être un nombre flottant"
|
||||
|
||||
#: tiramisu/option.py:462
|
||||
#: tiramisu/option.py:684
|
||||
msgid "value must be a string, not {0}"
|
||||
msgstr "valeur doit être une chaîne, pas {0}"
|
||||
|
||||
#: tiramisu/option.py:480
|
||||
#: tiramisu/option.py:702
|
||||
msgid "value must be an unicode"
|
||||
msgstr "valeur doit être une valeur unicode"
|
||||
|
||||
#: tiramisu/option.py:490
|
||||
#: tiramisu/option.py:714
|
||||
msgid "malformed symlinkoption must be an option for symlink {0}"
|
||||
msgstr "symlinkoption mal formé doit être une option pour symlink {0}"
|
||||
|
||||
#: tiramisu/option.py:526
|
||||
msgid "IP shall not be in reserved class"
|
||||
#: tiramisu/option.py:766
|
||||
msgid "IP mustn't not be in reserved class"
|
||||
msgstr "IP ne doit pas être d'une classe reservée"
|
||||
|
||||
#: tiramisu/option.py:528
|
||||
#: tiramisu/option.py:768
|
||||
msgid "IP must be in private class"
|
||||
msgstr "IP doit être dans la classe privée"
|
||||
|
||||
#: tiramisu/option.py:566
|
||||
#: tiramisu/option.py:806
|
||||
msgid "inconsistency in allowed range"
|
||||
msgstr "inconsistence dans la plage autorisée"
|
||||
|
||||
#: tiramisu/option.py:571
|
||||
#: tiramisu/option.py:811
|
||||
msgid "max value is empty"
|
||||
msgstr "valeur maximum est vide"
|
||||
|
||||
#: tiramisu/option.py:608
|
||||
#: tiramisu/option.py:848
|
||||
msgid "network shall not be in reserved class"
|
||||
msgstr "réseau ne doit pas être dans la classe reservée"
|
||||
|
||||
#: tiramisu/option.py:640
|
||||
#: tiramisu/option.py:880
|
||||
msgid "invalid network {0} ({1}) with netmask {2} ({3}), this network is an IP"
|
||||
msgstr "réseau invalide {0} ({1}) avec masque {2} ({3}), ce réseau est une IP"
|
||||
|
||||
#: tiramisu/option.py:645
|
||||
#: tiramisu/option.py:885
|
||||
msgid "invalid IP {0} ({1}) with netmask {2} ({3}), this IP is a network"
|
||||
msgstr "IP invalide {0} ({1}) avec masque {2} ({3}), cette IP est un réseau"
|
||||
|
||||
#: tiramisu/option.py:650
|
||||
#: tiramisu/option.py:890
|
||||
msgid "invalid IP {0} ({1}) with netmask {2} ({3})"
|
||||
msgstr "IP invalide {0} ({1}) avec masque {2} ({3})"
|
||||
|
||||
#: tiramisu/option.py:652
|
||||
#: tiramisu/option.py:892
|
||||
msgid "invalid network {0} ({1}) with netmask {2} ({3})"
|
||||
msgstr "réseau invalide {0} ({1}) avec masque {2} ({3})"
|
||||
|
||||
#: tiramisu/option.py:672
|
||||
#: tiramisu/option.py:912
|
||||
msgid "unknown type_ {0} for hostname"
|
||||
msgstr "type_ inconnu {0} pour le nom d'hôte"
|
||||
|
||||
#: tiramisu/option.py:675
|
||||
#: tiramisu/option.py:915
|
||||
msgid "allow_ip must be a boolean"
|
||||
msgstr "allow_ip doit être un booléen"
|
||||
|
||||
#: tiramisu/option.py:704
|
||||
#: tiramisu/option.py:944
|
||||
msgid "invalid value for {0}, must have dot"
|
||||
msgstr "valeur invalide pour {0}, doit avoir un point"
|
||||
|
||||
#: tiramisu/option.py:707
|
||||
#: tiramisu/option.py:947
|
||||
msgid "invalid domainname's length for {0} (max {1})"
|
||||
msgstr "longueur du nom de domaine invalide pour {0} (maximum {1})"
|
||||
|
||||
#: tiramisu/option.py:710
|
||||
#: tiramisu/option.py:950
|
||||
msgid "invalid domainname's length for {0} (min 2)"
|
||||
msgstr "longueur du nom de domaine invalide pour {0} (minimum 2)"
|
||||
|
||||
#: tiramisu/option.py:714
|
||||
#: tiramisu/option.py:954
|
||||
msgid "invalid domainname"
|
||||
msgstr "nom de domaine invalide"
|
||||
|
||||
#: tiramisu/option.py:731
|
||||
msgid "invalid name: {0} for optiondescription"
|
||||
msgstr "nom invalide : {0} pour l'optiondescription"
|
||||
|
||||
#: tiramisu/option.py:743
|
||||
#: tiramisu/option.py:981
|
||||
msgid "duplicate option name: {0}"
|
||||
msgstr "nom de l'option dupliqué : {0}"
|
||||
|
||||
#: tiramisu/option.py:769
|
||||
#: tiramisu/option.py:998
|
||||
msgid "unknown Option {0} in OptionDescription {1}"
|
||||
msgstr "Option {} inconnue pour l'OptionDescription{}"
|
||||
|
||||
#: tiramisu/option.py:820
|
||||
#: tiramisu/option.py:1049
|
||||
msgid "duplicate option: {0}"
|
||||
msgstr "option dupliquée : {0}"
|
||||
|
||||
#: tiramisu/option.py:850
|
||||
#: tiramisu/option.py:1083
|
||||
msgid "no option for path {0}"
|
||||
msgstr "pas d'option pour le chemin {0}"
|
||||
|
||||
#: tiramisu/option.py:856
|
||||
#: tiramisu/option.py:1089
|
||||
msgid "no option {0} found"
|
||||
msgstr "pas d'option {0} trouvée"
|
||||
|
||||
#: tiramisu/option.py:866
|
||||
#: tiramisu/option.py:1099
|
||||
msgid "cannot change group_type if already set (old {0}, new {1})"
|
||||
msgstr "ne peut changer group_type si déjà spécifié (ancien {0}, nouveau {1})"
|
||||
|
||||
#: tiramisu/option.py:879
|
||||
#: tiramisu/option.py:1112
|
||||
msgid "master group {0} shall not have a subgroup"
|
||||
msgstr "groupe maître {0} ne doit pas avoir de sous-groupe"
|
||||
|
||||
#: tiramisu/option.py:882
|
||||
#: tiramisu/option.py:1115
|
||||
msgid "master group {0} shall not have a symlinkoption"
|
||||
msgstr "groupe maître {0} ne doit pas avoir de symlinkoption"
|
||||
|
||||
#: tiramisu/option.py:885
|
||||
#: tiramisu/option.py:1118
|
||||
msgid "not allowed option {0} in group {1}: this option is not a multi"
|
||||
msgstr ""
|
||||
"option non autorisée {0} dans le groupe {1} : cette option n'est pas une "
|
||||
"multi"
|
||||
|
||||
#: tiramisu/option.py:896
|
||||
#: tiramisu/option.py:1129
|
||||
msgid "master group with wrong master name for {0}"
|
||||
msgstr "le groupe maître avec un nom de maître éroné pour {0}"
|
||||
|
||||
#: tiramisu/option.py:905
|
||||
#: tiramisu/option.py:1138
|
||||
msgid "no child has same nom has master group for: {0}"
|
||||
msgstr "pas d'enfant avec le nom du groupe maître pour {0} "
|
||||
|
||||
#: tiramisu/option.py:908
|
||||
#: tiramisu/option.py:1141
|
||||
msgid "group_type: {0} not allowed"
|
||||
msgstr "group_type : {0} non autorisé"
|
||||
|
||||
#: tiramisu/option.py:946
|
||||
#: tiramisu/option.py:1231
|
||||
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.py:962
|
||||
#: tiramisu/option.py:1248
|
||||
msgid ""
|
||||
"malformed requirements for option: {0} require must have option, expected "
|
||||
"and action keys"
|
||||
@ -294,87 +282,108 @@ msgstr ""
|
||||
"requirements malformé pour l'option : {0} l'exigence doit avoir les clefs "
|
||||
"option, exptected et action"
|
||||
|
||||
#: tiramisu/option.py:967
|
||||
#: tiramisu/option.py:1253
|
||||
msgid "malformed requirements for option: {0} inverse must be boolean"
|
||||
msgstr "requirements malformé pour l'option : {0} inverse doit être un booléen"
|
||||
|
||||
#: tiramisu/option.py:971
|
||||
#: tiramisu/option.py:1257
|
||||
msgid "malformed requirements for option: {0} transitive must be boolean"
|
||||
msgstr "requirements malformé pour l'option : {0} transitive doit être booléen"
|
||||
|
||||
#: tiramisu/option.py:975
|
||||
#: tiramisu/option.py:1261
|
||||
msgid "malformed requirements for option: {0} same_action must be boolean"
|
||||
msgstr ""
|
||||
"requirements malformé pour l'option : {0} same_action doit être un booléen"
|
||||
|
||||
#: tiramisu/option.py:979
|
||||
#: tiramisu/option.py:1265
|
||||
msgid "malformed requirements must be an option in option {0}"
|
||||
msgstr "requirements malformé doit être une option dans l'option {0}"
|
||||
|
||||
#: tiramisu/option.py:982
|
||||
#: tiramisu/option.py:1268
|
||||
msgid "malformed requirements option {0} should not be a multi"
|
||||
msgstr "requirements malformé l'option {0} ne doit pas être une multi"
|
||||
|
||||
#: tiramisu/option.py:988
|
||||
#: tiramisu/option.py:1274
|
||||
msgid ""
|
||||
"malformed requirements second argument must be valid for option {0}: {1}"
|
||||
msgstr ""
|
||||
"requirements malformé deuxième argument doit être valide pour l'option {0} : "
|
||||
"{1}"
|
||||
|
||||
#: tiramisu/option.py:993
|
||||
#: tiramisu/option.py:1279
|
||||
msgid "inconsistency in action types for option: {0} action: {1}"
|
||||
msgstr "incohérence dans les types action pour l'option : {0} action {1}"
|
||||
|
||||
#: tiramisu/setting.py:47
|
||||
msgid "storage_type is already set, cannot rebind it"
|
||||
msgstr "storage_type est déjà défini, impossible de le redéfinir"
|
||||
#: tiramisu/option.py:1304
|
||||
msgid "{0} should be a function"
|
||||
msgstr "{0} doit être une fonction"
|
||||
|
||||
#: tiramisu/setting.py:67
|
||||
#: tiramisu/option.py:1307
|
||||
msgid "{0}_params should be a dict"
|
||||
msgstr "{0}_params devrait être un dict"
|
||||
|
||||
#: tiramisu/option.py:1310
|
||||
msgid "{0}_params with key {1} should not have length different to 1"
|
||||
msgstr ""
|
||||
"{0}_params avec la clef {1} devrait ne pas avoir une longueur différent de 1"
|
||||
|
||||
#: tiramisu/option.py:1314
|
||||
msgid "{0}_params should be tuple for key \"{1}\""
|
||||
msgstr "{0}_params devrait être un tuple pour la clef \"{1}\""
|
||||
|
||||
#: tiramisu/option.py:1320
|
||||
msgid "validator not support tuple"
|
||||
msgstr "validator n'accepte pas de tuple"
|
||||
|
||||
#: tiramisu/option.py:1323
|
||||
msgid "{0}_params should have an option not a {0} for first argument"
|
||||
msgstr "{0}_params devrait avoir une option pas un {0} pour première argument"
|
||||
|
||||
#: tiramisu/option.py:1327
|
||||
msgid "{0}_params should have a boolean not a {0} for second argument"
|
||||
msgstr "{0}_params devrait avoir un boolean pas un {0} pour second argument"
|
||||
|
||||
#: tiramisu/setting.py:116
|
||||
msgid "can't rebind {0}"
|
||||
msgstr "ne peut redéfinir ({0})"
|
||||
|
||||
#: tiramisu/setting.py:72
|
||||
#: tiramisu/setting.py:121
|
||||
msgid "can't unbind {0}"
|
||||
msgstr "ne peut supprimer ({0})"
|
||||
|
||||
#: tiramisu/setting.py:185
|
||||
#: tiramisu/setting.py:259
|
||||
msgid "cannot append {0} property for option {1}: this property is calculated"
|
||||
msgstr ""
|
||||
"ne peut ajouter la propriété {0} dans l'option {1}: cette propriété est "
|
||||
"calculée"
|
||||
|
||||
#: tiramisu/setting.py:215
|
||||
msgid "option {0} not already exists in storage {1}"
|
||||
msgstr "option {0} n'existe pas dans l'espace de stockage {1}"
|
||||
|
||||
#: tiramisu/setting.py:282
|
||||
#: tiramisu/setting.py:322
|
||||
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:297
|
||||
#: tiramisu/setting.py:337
|
||||
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:391
|
||||
#: tiramisu/setting.py:440
|
||||
msgid "cannot change the value for option {0} this option is frozen"
|
||||
msgstr ""
|
||||
"ne peut modifié la valeur de l'option {0} cette option n'est pas modifiable"
|
||||
|
||||
#: tiramisu/setting.py:397
|
||||
#: tiramisu/setting.py:446
|
||||
msgid "trying to access to an option named: {0} with properties {1}"
|
||||
msgstr "tentative d'accès à une option nommée : {0} avec les propriétés {1}"
|
||||
|
||||
#: tiramisu/setting.py:415
|
||||
#: tiramisu/setting.py:464
|
||||
msgid "permissive must be a tuple"
|
||||
msgstr "permissive doit être un tuple"
|
||||
|
||||
#: tiramisu/setting.py:422 tiramisu/value.py:277
|
||||
#: tiramisu/setting.py:471 tiramisu/value.py:300
|
||||
msgid "invalid generic owner {0}"
|
||||
msgstr "invalide owner générique {0}"
|
||||
|
||||
#: tiramisu/setting.py:503
|
||||
#: tiramisu/setting.py:558
|
||||
msgid ""
|
||||
"malformed requirements imbrication detected for option: '{0}' with "
|
||||
"requirement on: '{1}'"
|
||||
@ -382,65 +391,85 @@ msgstr ""
|
||||
"imbrication de requirements malformé detectée pour l'option : '{0}' avec "
|
||||
"requirement sur : '{1}'"
|
||||
|
||||
#: tiramisu/setting.py:515
|
||||
#: tiramisu/setting.py:570
|
||||
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/storage/dictionary/storage.py:37
|
||||
#: tiramisu/storage/__init__.py:52
|
||||
msgid "storage_type is already set, cannot rebind it"
|
||||
msgstr "storage_type est déjà défini, impossible de le redéfinir"
|
||||
|
||||
#: tiramisu/storage/__init__.py:86
|
||||
msgid "option {0} not already exists in storage {1}"
|
||||
msgstr "option {0} n'existe pas dans l'espace de stockage {1}"
|
||||
|
||||
#: tiramisu/storage/dictionary/storage.py:39
|
||||
msgid "dictionary storage cannot delete session"
|
||||
msgstr ""
|
||||
"impossible de supprimer une session dans un espace de stockage dictionary"
|
||||
|
||||
#: tiramisu/storage/dictionary/storage.py:46
|
||||
#: tiramisu/storage/dictionary/storage.py:50
|
||||
msgid "session already used"
|
||||
msgstr "session déjà utilisée"
|
||||
|
||||
#: tiramisu/storage/dictionary/storage.py:48
|
||||
#: tiramisu/storage/dictionary/storage.py:52
|
||||
msgid "a dictionary cannot be persistent"
|
||||
msgstr "un espace de stockage dictionary ne peut être persistant"
|
||||
|
||||
#: tiramisu/value.py:284
|
||||
#: tiramisu/value.py:307
|
||||
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:356
|
||||
#: tiramisu/value.py:414
|
||||
msgid "invalid len for the slave: {0} which has {1} as master"
|
||||
msgstr "longueur invalide pour une esclave : {0} qui a {1} comme maître"
|
||||
|
||||
#: tiramisu/value.py:373
|
||||
#: tiramisu/value.py:438
|
||||
msgid "invalid len for the master: {0} which has {1} as slave with greater len"
|
||||
msgstr ""
|
||||
"longueur invalide pour un maître : {0} qui a {1} une esclave avec une plus "
|
||||
"grande longueur"
|
||||
|
||||
#: tiramisu/value.py:394
|
||||
#: tiramisu/value.py:468
|
||||
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:429
|
||||
#: tiramisu/value.py:503
|
||||
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:433
|
||||
#: tiramisu/value.py:507
|
||||
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:442
|
||||
#: tiramisu/value.py:516
|
||||
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:450
|
||||
#: tiramisu/value.py:524
|
||||
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:458
|
||||
#: tiramisu/value.py:532
|
||||
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:482
|
||||
#: tiramisu/value.py:559
|
||||
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 "no config specified but needed"
|
||||
#~ msgstr "aucune config spécifié alors que c'est nécessaire"
|
||||
|
||||
#~ msgid "{0} has no attribute impl_set_information"
|
||||
#~ msgstr "{0} n'a pas d'attribut impl_set_information"
|
||||
|
||||
#~ msgid "{0} has no attribute impl_get_information"
|
||||
#~ msgstr "{0} n'a pas d'attribut impl_get_information"
|
||||
|
||||
#~ msgid "invalid name: {0} for optiondescription"
|
||||
#~ msgstr "nom invalide : {0} pour l'optiondescription"
|
||||
|
||||
#~ msgid "metaconfig's children must be a list"
|
||||
#~ msgstr "enfants d'une metaconfig doit être une liste"
|
||||
|
||||
|
@ -5,7 +5,7 @@
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"POT-Creation-Date: 2013-09-02 11:30+CEST\n"
|
||||
"POT-Creation-Date: 2013-09-23 20:59+CEST\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
@ -15,395 +15,411 @@ msgstr ""
|
||||
"Generated-By: pygettext.py 1.5\n"
|
||||
|
||||
|
||||
#: tiramisu/autolib.py:58
|
||||
msgid "no config specified but needed"
|
||||
msgstr ""
|
||||
|
||||
#: tiramisu/autolib.py:65
|
||||
#: tiramisu/autolib.py:131
|
||||
msgid "unable to carry out a calculation, option {0} has properties: {1} for: {2}"
|
||||
msgstr ""
|
||||
|
||||
#: tiramisu/autolib.py:74
|
||||
#: tiramisu/autolib.py:140
|
||||
msgid "unable to carry out a calculation, option value with multi types must have same length for: {0}"
|
||||
msgstr ""
|
||||
|
||||
#: tiramisu/config.py:47
|
||||
#: tiramisu/config.py:48
|
||||
msgid "descr must be an optiondescription, not {0}"
|
||||
msgstr ""
|
||||
|
||||
#: tiramisu/config.py:121
|
||||
#: tiramisu/config.py:122
|
||||
msgid "unknown group_type: {0}"
|
||||
msgstr ""
|
||||
|
||||
#: tiramisu/config.py:157
|
||||
#: tiramisu/config.py:158
|
||||
msgid "no option description found for this config (may be metaconfig without meta)"
|
||||
msgstr ""
|
||||
|
||||
#: tiramisu/config.py:311
|
||||
#: tiramisu/config.py:313
|
||||
msgid "unknown type_ type {0}for _find"
|
||||
msgstr ""
|
||||
|
||||
#: tiramisu/config.py:350
|
||||
#: tiramisu/config.py:352
|
||||
msgid "no option found in config with these criteria"
|
||||
msgstr ""
|
||||
|
||||
#: tiramisu/config.py:400
|
||||
#: tiramisu/config.py:402
|
||||
msgid "make_dict can't filtering with value without option"
|
||||
msgstr ""
|
||||
|
||||
#: tiramisu/config.py:421
|
||||
#: tiramisu/config.py:423
|
||||
msgid "unexpected path {0}, should start with {1}"
|
||||
msgstr ""
|
||||
|
||||
#: tiramisu/config.py:481
|
||||
#: tiramisu/config.py:483
|
||||
msgid "opt in getowner must be an option not {0}"
|
||||
msgstr ""
|
||||
|
||||
#: tiramisu/option.py:71
|
||||
msgid "{0} has no attribute impl_set_information"
|
||||
msgstr ""
|
||||
|
||||
#: tiramisu/option.py:86
|
||||
msgid "information's item not found: {0}"
|
||||
msgstr ""
|
||||
|
||||
#: tiramisu/option.py:89
|
||||
msgid "{0} has no attribute impl_get_information"
|
||||
msgstr ""
|
||||
|
||||
#: tiramisu/option.py:117
|
||||
msgid "'{0}' ({1}) object attribute '{2}' is read-only"
|
||||
msgstr ""
|
||||
|
||||
#: tiramisu/option.py:208
|
||||
#: tiramisu/option.py:69
|
||||
msgid "invalid name: {0} for option"
|
||||
msgstr ""
|
||||
|
||||
#: tiramisu/option.py:218
|
||||
msgid "validator must be a function"
|
||||
msgstr ""
|
||||
|
||||
#: tiramisu/option.py:225
|
||||
msgid "a default_multi is set whereas multi is False in option: {0}"
|
||||
msgstr ""
|
||||
|
||||
#: tiramisu/option.py:231
|
||||
msgid "invalid default_multi value {0} for option {1}: {2}"
|
||||
msgstr ""
|
||||
|
||||
#: tiramisu/option.py:236
|
||||
msgid "default value not allowed if option: {0} is calculated"
|
||||
msgstr ""
|
||||
|
||||
#: tiramisu/option.py:239
|
||||
msgid "params defined for a callback function but no callback defined yet for option {0}"
|
||||
msgstr ""
|
||||
|
||||
#: tiramisu/option.py:261 tiramisu/option.py:809
|
||||
#: tiramisu/option.py:79
|
||||
msgid "invalid properties type {0} for {1}, must be a tuple"
|
||||
msgstr ""
|
||||
|
||||
#: tiramisu/option.py:334
|
||||
#: tiramisu/option.py:121
|
||||
msgid "'{0}' ({1}) object attribute '{2}' is read-only"
|
||||
msgstr ""
|
||||
|
||||
#: tiramisu/option.py:148 tiramisu/value.py:361
|
||||
msgid "information's item not found: {0}"
|
||||
msgstr ""
|
||||
|
||||
#: tiramisu/option.py:265
|
||||
msgid "cannot serialize Option, only in OptionDescription"
|
||||
msgstr ""
|
||||
|
||||
#: tiramisu/option.py:364
|
||||
msgid "a default_multi is set whereas multi is False in option: {0}"
|
||||
msgstr ""
|
||||
|
||||
#: tiramisu/option.py:370
|
||||
msgid "invalid default_multi value {0} for option {1}: {2}"
|
||||
msgstr ""
|
||||
|
||||
#: tiramisu/option.py:375
|
||||
msgid "default value not allowed if option: {0} is calculated"
|
||||
msgstr ""
|
||||
|
||||
#: tiramisu/option.py:378
|
||||
msgid "params defined for a callback function but no callback defined yet for option {0}"
|
||||
msgstr ""
|
||||
|
||||
#: tiramisu/option.py:463
|
||||
msgid "validator should return a boolean, not {0}"
|
||||
msgstr ""
|
||||
|
||||
#: tiramisu/option.py:473
|
||||
msgid "invalid value {0} for option {1} for object {2}"
|
||||
msgstr ""
|
||||
|
||||
#: tiramisu/option.py:342 tiramisu/value.py:468
|
||||
#: tiramisu/option.py:481 tiramisu/value.py:542
|
||||
msgid "invalid value {0} for option {1}: {2}"
|
||||
msgstr ""
|
||||
|
||||
#: tiramisu/option.py:354
|
||||
#: tiramisu/option.py:493
|
||||
msgid "invalid value {0} for option {1} which must be a list"
|
||||
msgstr ""
|
||||
|
||||
#: tiramisu/option.py:423
|
||||
#: tiramisu/option.py:562
|
||||
msgid "invalid value {0} for option {1} must be different as {2} option"
|
||||
msgstr ""
|
||||
|
||||
#: tiramisu/option.py:445
|
||||
#: tiramisu/option.py:618
|
||||
msgid "values must be a tuple for {0}"
|
||||
msgstr ""
|
||||
|
||||
#: tiramisu/option.py:448
|
||||
#: tiramisu/option.py:621
|
||||
msgid "open_values must be a boolean for {0}"
|
||||
msgstr ""
|
||||
|
||||
#: tiramisu/option.py:469
|
||||
#: tiramisu/option.py:642
|
||||
msgid "value {0} is not permitted, only {1} is allowed"
|
||||
msgstr ""
|
||||
|
||||
#: tiramisu/option.py:481
|
||||
#: tiramisu/option.py:654
|
||||
msgid "value must be a boolean"
|
||||
msgstr ""
|
||||
|
||||
#: tiramisu/option.py:491
|
||||
#: tiramisu/option.py:664
|
||||
msgid "value must be an integer"
|
||||
msgstr ""
|
||||
|
||||
#: tiramisu/option.py:501
|
||||
#: tiramisu/option.py:674
|
||||
msgid "value must be a float"
|
||||
msgstr ""
|
||||
|
||||
#: tiramisu/option.py:511
|
||||
#: tiramisu/option.py:684
|
||||
msgid "value must be a string, not {0}"
|
||||
msgstr ""
|
||||
|
||||
#: tiramisu/option.py:529
|
||||
#: tiramisu/option.py:702
|
||||
msgid "value must be an unicode"
|
||||
msgstr ""
|
||||
|
||||
#: tiramisu/option.py:539
|
||||
#: tiramisu/option.py:714
|
||||
msgid "malformed symlinkoption must be an option for symlink {0}"
|
||||
msgstr ""
|
||||
|
||||
#: tiramisu/option.py:581
|
||||
msgid "IP shall not be in reserved class"
|
||||
#: tiramisu/option.py:766
|
||||
msgid "IP mustn't not be in reserved class"
|
||||
msgstr ""
|
||||
|
||||
#: tiramisu/option.py:583
|
||||
#: tiramisu/option.py:768
|
||||
msgid "IP must be in private class"
|
||||
msgstr ""
|
||||
|
||||
#: tiramisu/option.py:621
|
||||
#: tiramisu/option.py:806
|
||||
msgid "inconsistency in allowed range"
|
||||
msgstr ""
|
||||
|
||||
#: tiramisu/option.py:626
|
||||
#: tiramisu/option.py:811
|
||||
msgid "max value is empty"
|
||||
msgstr ""
|
||||
|
||||
#: tiramisu/option.py:663
|
||||
#: tiramisu/option.py:848
|
||||
msgid "network shall not be in reserved class"
|
||||
msgstr ""
|
||||
|
||||
#: tiramisu/option.py:695
|
||||
#: tiramisu/option.py:880
|
||||
msgid "invalid network {0} ({1}) with netmask {2} ({3}), this network is an IP"
|
||||
msgstr ""
|
||||
|
||||
#: tiramisu/option.py:700
|
||||
#: tiramisu/option.py:885
|
||||
msgid "invalid IP {0} ({1}) with netmask {2} ({3}), this IP is a network"
|
||||
msgstr ""
|
||||
|
||||
#: tiramisu/option.py:705
|
||||
#: tiramisu/option.py:890
|
||||
msgid "invalid IP {0} ({1}) with netmask {2} ({3})"
|
||||
msgstr ""
|
||||
|
||||
#: tiramisu/option.py:707
|
||||
#: tiramisu/option.py:892
|
||||
msgid "invalid network {0} ({1}) with netmask {2} ({3})"
|
||||
msgstr ""
|
||||
|
||||
#: tiramisu/option.py:727
|
||||
#: tiramisu/option.py:912
|
||||
msgid "unknown type_ {0} for hostname"
|
||||
msgstr ""
|
||||
|
||||
#: tiramisu/option.py:730
|
||||
#: tiramisu/option.py:915
|
||||
msgid "allow_ip must be a boolean"
|
||||
msgstr ""
|
||||
|
||||
#: tiramisu/option.py:759
|
||||
#: tiramisu/option.py:944
|
||||
msgid "invalid value for {0}, must have dot"
|
||||
msgstr ""
|
||||
|
||||
#: tiramisu/option.py:762
|
||||
#: tiramisu/option.py:947
|
||||
msgid "invalid domainname's length for {0} (max {1})"
|
||||
msgstr ""
|
||||
|
||||
#: tiramisu/option.py:765
|
||||
#: tiramisu/option.py:950
|
||||
msgid "invalid domainname's length for {0} (min 2)"
|
||||
msgstr ""
|
||||
|
||||
#: tiramisu/option.py:769
|
||||
#: tiramisu/option.py:954
|
||||
msgid "invalid domainname"
|
||||
msgstr ""
|
||||
|
||||
#: tiramisu/option.py:787
|
||||
msgid "invalid name: {0} for optiondescription"
|
||||
msgstr ""
|
||||
|
||||
#: tiramisu/option.py:799
|
||||
#: tiramisu/option.py:981
|
||||
msgid "duplicate option name: {0}"
|
||||
msgstr ""
|
||||
|
||||
#: tiramisu/option.py:825
|
||||
#: tiramisu/option.py:998
|
||||
msgid "unknown Option {0} in OptionDescription {1}"
|
||||
msgstr ""
|
||||
|
||||
#: tiramisu/option.py:874
|
||||
#: tiramisu/option.py:1049
|
||||
msgid "duplicate option: {0}"
|
||||
msgstr ""
|
||||
|
||||
#: tiramisu/option.py:904
|
||||
#: tiramisu/option.py:1083
|
||||
msgid "no option for path {0}"
|
||||
msgstr ""
|
||||
|
||||
#: tiramisu/option.py:910
|
||||
#: tiramisu/option.py:1089
|
||||
msgid "no option {0} found"
|
||||
msgstr ""
|
||||
|
||||
#: tiramisu/option.py:920
|
||||
#: tiramisu/option.py:1099
|
||||
msgid "cannot change group_type if already set (old {0}, new {1})"
|
||||
msgstr ""
|
||||
|
||||
#: tiramisu/option.py:933
|
||||
#: tiramisu/option.py:1112
|
||||
msgid "master group {0} shall not have a subgroup"
|
||||
msgstr ""
|
||||
|
||||
#: tiramisu/option.py:936
|
||||
#: tiramisu/option.py:1115
|
||||
msgid "master group {0} shall not have a symlinkoption"
|
||||
msgstr ""
|
||||
|
||||
#: tiramisu/option.py:939
|
||||
#: tiramisu/option.py:1118
|
||||
msgid "not allowed option {0} in group {1}: this option is not a multi"
|
||||
msgstr ""
|
||||
|
||||
#: tiramisu/option.py:950
|
||||
#: tiramisu/option.py:1129
|
||||
msgid "master group with wrong master name for {0}"
|
||||
msgstr ""
|
||||
|
||||
#: tiramisu/option.py:959
|
||||
#: tiramisu/option.py:1138
|
||||
msgid "no child has same nom has master group for: {0}"
|
||||
msgstr ""
|
||||
|
||||
#: tiramisu/option.py:962
|
||||
#: tiramisu/option.py:1141
|
||||
msgid "group_type: {0} not allowed"
|
||||
msgstr ""
|
||||
|
||||
#: tiramisu/option.py:1021
|
||||
#: tiramisu/option.py:1231
|
||||
msgid "malformed requirements type for option: {0}, must be a dict"
|
||||
msgstr ""
|
||||
|
||||
#: tiramisu/option.py:1037
|
||||
#: tiramisu/option.py:1248
|
||||
msgid "malformed requirements for option: {0} require must have option, expected and action keys"
|
||||
msgstr ""
|
||||
|
||||
#: tiramisu/option.py:1042
|
||||
#: tiramisu/option.py:1253
|
||||
msgid "malformed requirements for option: {0} inverse must be boolean"
|
||||
msgstr ""
|
||||
|
||||
#: tiramisu/option.py:1046
|
||||
#: tiramisu/option.py:1257
|
||||
msgid "malformed requirements for option: {0} transitive must be boolean"
|
||||
msgstr ""
|
||||
|
||||
#: tiramisu/option.py:1050
|
||||
#: tiramisu/option.py:1261
|
||||
msgid "malformed requirements for option: {0} same_action must be boolean"
|
||||
msgstr ""
|
||||
|
||||
#: tiramisu/option.py:1054
|
||||
#: tiramisu/option.py:1265
|
||||
msgid "malformed requirements must be an option in option {0}"
|
||||
msgstr ""
|
||||
|
||||
#: tiramisu/option.py:1057
|
||||
#: tiramisu/option.py:1268
|
||||
msgid "malformed requirements option {0} should not be a multi"
|
||||
msgstr ""
|
||||
|
||||
#: tiramisu/option.py:1063
|
||||
#: tiramisu/option.py:1274
|
||||
msgid "malformed requirements second argument must be valid for option {0}: {1}"
|
||||
msgstr ""
|
||||
|
||||
#: tiramisu/option.py:1068
|
||||
#: tiramisu/option.py:1279
|
||||
msgid "inconsistency in action types for option: {0} action: {1}"
|
||||
msgstr ""
|
||||
|
||||
#: tiramisu/setting.py:47
|
||||
msgid "storage_type is already set, cannot rebind it"
|
||||
#: tiramisu/option.py:1304
|
||||
msgid "{0} should be a function"
|
||||
msgstr ""
|
||||
|
||||
#: tiramisu/setting.py:67
|
||||
#: tiramisu/option.py:1307
|
||||
msgid "{0}_params should be a dict"
|
||||
msgstr ""
|
||||
|
||||
#: tiramisu/option.py:1310
|
||||
msgid "{0}_params with key {1} should not have length different to 1"
|
||||
msgstr ""
|
||||
|
||||
#: tiramisu/option.py:1314
|
||||
msgid "{0}_params should be tuple for key \"{1}\""
|
||||
msgstr ""
|
||||
|
||||
#: tiramisu/option.py:1320
|
||||
msgid "validator not support tuple"
|
||||
msgstr ""
|
||||
|
||||
#: tiramisu/option.py:1323
|
||||
msgid "{0}_params should have an option not a {0} for first argument"
|
||||
msgstr ""
|
||||
|
||||
#: tiramisu/option.py:1327
|
||||
msgid "{0}_params should have a boolean not a {0} for second argument"
|
||||
msgstr ""
|
||||
|
||||
#: tiramisu/setting.py:116
|
||||
msgid "can't rebind {0}"
|
||||
msgstr ""
|
||||
|
||||
#: tiramisu/setting.py:72
|
||||
#: tiramisu/setting.py:121
|
||||
msgid "can't unbind {0}"
|
||||
msgstr ""
|
||||
|
||||
#: tiramisu/setting.py:185
|
||||
#: tiramisu/setting.py:259
|
||||
msgid "cannot append {0} property for option {1}: this property is calculated"
|
||||
msgstr ""
|
||||
|
||||
#: tiramisu/setting.py:215
|
||||
msgid "option {0} not already exists in storage {1}"
|
||||
msgstr ""
|
||||
|
||||
#: tiramisu/setting.py:282
|
||||
#: tiramisu/setting.py:322
|
||||
msgid "opt and all_properties must not be set together in reset"
|
||||
msgstr ""
|
||||
|
||||
#: tiramisu/setting.py:297
|
||||
#: tiramisu/setting.py:337
|
||||
msgid "if opt is not None, path should not be None in _getproperties"
|
||||
msgstr ""
|
||||
|
||||
#: tiramisu/setting.py:391
|
||||
#: tiramisu/setting.py:440
|
||||
msgid "cannot change the value for option {0} this option is frozen"
|
||||
msgstr ""
|
||||
|
||||
#: tiramisu/setting.py:397
|
||||
#: tiramisu/setting.py:446
|
||||
msgid "trying to access to an option named: {0} with properties {1}"
|
||||
msgstr ""
|
||||
|
||||
#: tiramisu/setting.py:415
|
||||
#: tiramisu/setting.py:464
|
||||
msgid "permissive must be a tuple"
|
||||
msgstr ""
|
||||
|
||||
#: tiramisu/setting.py:422 tiramisu/value.py:277
|
||||
#: tiramisu/setting.py:471 tiramisu/value.py:300
|
||||
msgid "invalid generic owner {0}"
|
||||
msgstr ""
|
||||
|
||||
#: tiramisu/setting.py:503
|
||||
#: tiramisu/setting.py:558
|
||||
msgid "malformed requirements imbrication detected for option: '{0}' with requirement on: '{1}'"
|
||||
msgstr ""
|
||||
|
||||
#: tiramisu/setting.py:515
|
||||
#: tiramisu/setting.py:570
|
||||
msgid "option '{0}' has requirement's property error: {1} {2}"
|
||||
msgstr ""
|
||||
|
||||
#: tiramisu/storage/dictionary/storage.py:37
|
||||
#: tiramisu/storage/__init__.py:52
|
||||
msgid "storage_type is already set, cannot rebind it"
|
||||
msgstr ""
|
||||
|
||||
#: tiramisu/storage/__init__.py:86
|
||||
msgid "option {0} not already exists in storage {1}"
|
||||
msgstr ""
|
||||
|
||||
#: tiramisu/storage/dictionary/storage.py:39
|
||||
msgid "dictionary storage cannot delete session"
|
||||
msgstr ""
|
||||
|
||||
#: tiramisu/storage/dictionary/storage.py:46
|
||||
#: tiramisu/storage/dictionary/storage.py:50
|
||||
msgid "session already used"
|
||||
msgstr ""
|
||||
|
||||
#: tiramisu/storage/dictionary/storage.py:48
|
||||
#: tiramisu/storage/dictionary/storage.py:52
|
||||
msgid "a dictionary cannot be persistent"
|
||||
msgstr ""
|
||||
|
||||
#: tiramisu/value.py:284
|
||||
#: tiramisu/value.py:307
|
||||
msgid "no value for {0} cannot change owner to {1}"
|
||||
msgstr ""
|
||||
|
||||
#: tiramisu/value.py:356
|
||||
#: tiramisu/value.py:414
|
||||
msgid "invalid len for the slave: {0} which has {1} as master"
|
||||
msgstr ""
|
||||
|
||||
#: tiramisu/value.py:373
|
||||
#: tiramisu/value.py:438
|
||||
msgid "invalid len for the master: {0} which has {1} as slave with greater len"
|
||||
msgstr ""
|
||||
|
||||
#: tiramisu/value.py:394
|
||||
#: tiramisu/value.py:468
|
||||
msgid "cannot append a value on a multi option {0} which is a slave"
|
||||
msgstr ""
|
||||
|
||||
#: tiramisu/value.py:429
|
||||
#: tiramisu/value.py:503
|
||||
msgid "cannot sort multi option {0} if master or slave"
|
||||
msgstr ""
|
||||
|
||||
#: tiramisu/value.py:433
|
||||
#: tiramisu/value.py:507
|
||||
msgid "cmp is not permitted in python v3 or greater"
|
||||
msgstr ""
|
||||
|
||||
#: tiramisu/value.py:442
|
||||
#: tiramisu/value.py:516
|
||||
msgid "cannot reverse multi option {0} if master or slave"
|
||||
msgstr ""
|
||||
|
||||
#: tiramisu/value.py:450
|
||||
#: tiramisu/value.py:524
|
||||
msgid "cannot insert multi option {0} if master or slave"
|
||||
msgstr ""
|
||||
|
||||
#: tiramisu/value.py:458
|
||||
#: tiramisu/value.py:532
|
||||
msgid "cannot extend multi option {0} if master or slave"
|
||||
msgstr ""
|
||||
|
||||
#: tiramisu/value.py:482
|
||||
#: tiramisu/value.py:559
|
||||
msgid "cannot pop a value on a multi option {0} which is a slave"
|
||||
msgstr ""
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user