This commit is contained in:
Emmanuel Garette 2019-04-05 23:47:18 +02:00
parent 4dbb82ed3f
commit 48b3b7e8a4
11 changed files with 252 additions and 226 deletions

1
.gitignore vendored
View file

@ -3,5 +3,4 @@
*.pyc *.pyc
*.mo *.mo
*.swp *.swp
version.in
build/ build/

8
MANIFEST.in Normal file
View file

@ -0,0 +1,8 @@
# Include the README
include *.rst
# Include the license file
include LICENSE.txt
# Include the data files
recursive-include tiramisu *.py *.mo

View file

@ -10,7 +10,7 @@ INSTALL_DATA := install -m 644
INSTALL_PROGRAM := install -m 755 INSTALL_PROGRAM := install -m 755
INSTALL_DIR := install -m 755 -d INSTALL_DIR := install -m 755 -d
TRADUC_DIR = translations TRADUC_DIR = tiramisu/locale
TRADUC_DEST = $(DESTDIR)/usr/share/locale TRADUC_DEST = $(DESTDIR)/usr/share/locale
PYTHON_OPTS = PYTHON_OPTS =
@ -26,7 +26,7 @@ define gettext
else \ else \
P="pygettext.py" ; \ P="pygettext.py" ; \
fi ; \ fi ; \
$$P -p translations/ -o $(PACKAGE).pot `find $(PACKAGE)/ -name "*.py"` $$P -p $(TRADUC_DIR)/ -o $(PACKAGE).pot `find $(PACKAGE)/ -name "*.py"`
endef endef
# Build translation files # Build translation files
@ -69,12 +69,12 @@ build-pot:
build-lang: build-lang:
$(call build_translation, $(TRADUC_DIR)) $(call build_translation, $(TRADUC_DIR))
install-lang: # install-lang:
$(INSTALL_DIR) $(TRADUC_DEST) # $(INSTALL_DIR) $(TRADUC_DEST)
$(call install_translation, $(TRADUC_DIR)) # $(call install_translation, $(TRADUC_DIR))
install: install-lang install: # install-lang
python setup.py install --no-compile $(PYTHON_OPTS) python3 setup.py install --no-compile $(PYTHON_OPTS)
dist: dist:
git archive --format=tar --prefix $(PACKAGE)-$(VERSION)/ HEAD | gzip -9 > $(PACKAGE)-$(VERSION).tar.gz git archive --format=tar --prefix $(PACKAGE)-$(VERSION)/ HEAD | gzip -9 > $(PACKAGE)-$(VERSION).tar.gz

View file

@ -1 +0,0 @@
master

17
pyproject.toml Normal file
View file

@ -0,0 +1,17 @@
[build-system]
requires = ["flit"]
build-backend = "flit.buildapi"
[tool.flit.metadata]
module = "tiramisu"
author = "Emmanuel Garette"
author-email = "gnunux@gnunux.info"
home-page = "https://framagit.org/tiramisu/tiramisu"
classifiers = [
"License :: OSI Approved :: GNU Library or Lesser General Public License (LGPL)",
"Programming Language :: Python :: 3",
"Natural Language :: English",
"Natural Language :: French",
"Operating System :: OS Independent",
]
requires-python = ">=3.5"

View file

@ -1,57 +1,28 @@
#!/usr/bin/env python #!/usr/bin/env python
# -*- coding: utf-8 -*- # -*- coding: utf-8 -*-
from distutils.core import setup from setuptools import setup, find_packages
from os.path import dirname, abspath, join, normpath, isdir from os.path import dirname, abspath, join, normpath, isdir
from os import listdir from os import listdir
import os import os
from tiramisu import __version__
package_name = os.environ.get('PACKAGE_DST', 'tiramisu') PACKAGE_NAME = os.environ.get('PACKAGE_DST', 'tiramisu')
def fetch_version():
"""Get version from version.in"""
return open('VERSION', 'r').readline().strip()
def return_files(component):
here = dirname(abspath(__file__))
path = normpath(join(here, 'tiramisu', component))
dir_content = [content for content in listdir(path)
if not content == '__pycache__']
paths = filter(isdir, [join(path, content)
for content in dir_content])
lst = ['.'.join(path.split('/')[-3:]) for path in paths]
#lst = [package_name + '.' + '.'.join(path.split('/')[-2:]) for path in paths]
return lst
packages = [package_name, package_name + '.storage', package_name + '.option']
packages.extend(return_files('storage'))
packages.extend(return_files('option'))
if package_name != 'tiramisu':
package_dir = {package_name: 'tiramisu'}
else:
package_dir = {}
setup( setup(
version=__version__,
author="Tiramisu's team", author="Tiramisu's team",
author_email='contact@cadoles.com', author_email='gnunux@gnunux.info',
name=package_name, name=PACKAGE_NAME,
version=fetch_version(),
description='an options controller tool', description='an options controller tool',
url='http://tiramisu.labs.libre-entreprise.org/', url='https://framagit.org/tiramisu/tiramisu',
license='GNU Library or Lesser General Public License (LGPL)',
classifiers=[ classifiers=[
"Programming Language :: Python",
"Programming Language :: Python :: 2",
"Programming Language :: Python :: 3", "Programming Language :: Python :: 3",
"Development Status :: 4 - Beta",
"Environment :: Other Environment",
"Intended Audience :: Developers",
"License :: OSI Approved :: GNU Library or Lesser General Public License (LGPL)", "License :: OSI Approved :: GNU Library or Lesser General Public License (LGPL)",
"Operating System :: OS Independent", "Operating System :: OS Independent",
"Topic :: Software Development :: Libraries :: Python Modules", "Natural Language :: English",
"Topic :: Text Processing :: Linguistic" "Natural Language :: French",
], ],
long_description="""\ long_description="""\
An options controller tool An options controller tool
@ -67,8 +38,8 @@ Tiramisu is an options handler and an options controller, wich aims at
producing flexible and fast options access. producing flexible and fast options access.
This version requires Python 2.6 or later. This version requires Python 3.5 or later.
""", """,
packages=packages, include_package_data=True,
package_dir=package_dir packages=find_packages(include=['tiramisu'])
) )

View file

@ -12,6 +12,8 @@
# #
# You should have received a copy of the GNU Lesser General Public License # You should have received a copy of the GNU Lesser General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>. # along with this program. If not, see <http://www.gnu.org/licenses/>.
"""Configuration management library written in python
"""
from .function import Params, ParamOption, ParamValue, ParamContext, \ from .function import Params, ParamOption, ParamValue, ParamContext, \
tiramisu_copy, calc_value tiramisu_copy, calc_value
from .option import * from .option import *
@ -43,3 +45,4 @@ allfuncs.extend(all_options)
del(all_options) del(all_options)
__all__ = tuple(allfuncs) __all__ = tuple(allfuncs)
del(allfuncs) del(allfuncs)
__version__ = "3.0rc5"

View file

@ -18,34 +18,43 @@
# the rough gus of pypy: pypy: http://codespeak.net/svn/pypy/dist/pypy/config/ # the rough gus of pypy: pypy: http://codespeak.net/svn/pypy/dist/pypy/config/
# the whole pypy projet is under MIT licence # the whole pypy projet is under MIT licence
"internationalisation utilities" "internationalisation utilities"
import gettext from gettext import translation, NullTranslations
import os from platform import system
import sys from pkg_resources import resource_filename
import locale from .log import log
# Application Name
APP_NAME = 'tiramisu'
# Traduction dir def get_translation() -> str:
APP_DIR = os.path.join(sys.prefix, 'share') """Sets the user locale as langage
LOCALE_DIR = os.path.join(APP_DIR, 'locale') The default is set to english
"""
# Application name (without .i18n)
app_name = __name__[:-5]
translations_path = resource_filename(app_name, 'locale')
# Default Lanugage if 'Windows' in system():
DEFAULT_LANG = os.environ.get('LANG', '').split(':') import ctypes
DEFAULT_LANG += ['en_US'] from locale import windows_locale
default_locale = windows_locale[ctypes.windll.kernel32.GetUserDefaultUILanguage()]
else:
from locale import getdefaultlocale
default_locale = getdefaultlocale()
if default_locale and isinstance(default_locale, tuple):
user_locale = default_locale[0][:2]
elif default_locale:
user_locale = default_locale[:2]
else:
user_locale = 'en'
try:
trans = translation(domain=app_name,
localedir=translations_path,
languages=[user_locale],
codeset='UTF-8')
except FileNotFoundError:
log.debug('cannot found translation file for langage {} in localedir {}'.format(user_locale,
translations_path))
trans = NullTranslations()
return trans.gettext
languages = []
lc, encoding = locale.getdefaultlocale()
if lc:
languages = [lc]
languages += DEFAULT_LANG _ = get_translation()
mo_location = LOCALE_DIR
gettext.find(APP_NAME, mo_location)
gettext.textdomain(APP_NAME)
gettext.bind_textdomain_codeset(APP_NAME, "UTF-8")
t = gettext.translation(APP_NAME, fallback=True)
_ = t.gettext

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: 2019-03-05 08:46+CET\n" "POT-Creation-Date: 2019-04-07 10:39+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"
@ -55,31 +55,31 @@ msgstr ""
msgid "cannot add this property: \"{0}\"" msgid "cannot add this property: \"{0}\""
msgstr "" msgstr ""
#: tiramisu/api.py:503 tiramisu/config.py:252 #: tiramisu/api.py:504 tiramisu/config.py:252
msgid "can't delete a SymLinkOption" msgid "can't delete a SymLinkOption"
msgstr "" msgstr ""
#: tiramisu/api.py:636 tiramisu/api.py:1322 #: tiramisu/api.py:637 tiramisu/api.py:1326
msgid "please specify a valid sub function ({})" msgid "please specify a valid sub function ({})"
msgstr "" msgstr ""
#: tiramisu/api.py:699 tiramisu/api.py:1145 #: tiramisu/api.py:700 tiramisu/api.py:1146
msgid "unknown list type {}" msgid "unknown list type {}"
msgstr "" msgstr ""
#: tiramisu/api.py:701 tiramisu/api.py:1147 #: tiramisu/api.py:702 tiramisu/api.py:1148
msgid "unknown group_type: {0}" msgid "unknown group_type: {0}"
msgstr "" msgstr ""
#: tiramisu/api.py:974 #: tiramisu/api.py:975
msgid "properties must be a set" msgid "properties must be a set"
msgstr "" msgstr ""
#: tiramisu/api.py:980 tiramisu/api.py:1002 #: tiramisu/api.py:981 tiramisu/api.py:1003
msgid "unknown when {} (must be in append or remove)" msgid "unknown when {} (must be in append or remove)"
msgstr "" msgstr ""
#: tiramisu/api.py:992 tiramisu/api.py:1014 tiramisu/config.py:1227 #: tiramisu/api.py:993 tiramisu/api.py:1015 tiramisu/config.py:1249
msgid "unknown type {}" msgid "unknown type {}"
msgstr "" msgstr ""
@ -171,7 +171,7 @@ msgstr ""
msgid "unknown config \"{}\"" msgid "unknown config \"{}\""
msgstr "" msgstr ""
#: tiramisu/config.py:987 tiramisu/config.py:1202 #: tiramisu/config.py:987 tiramisu/config.py:1224
msgid "{}config's children should be config, not {}" msgid "{}config's children should be config, not {}"
msgstr "" msgstr ""
@ -191,26 +191,34 @@ msgstr ""
msgid "force_default and force_dont_change_value cannot be set together" msgid "force_default and force_dont_change_value cannot be set together"
msgstr "" msgstr ""
#: tiramisu/config.py:1189 #: tiramisu/config.py:1176
msgid "MetaConfig with optiondescription must have string has child, not {}" msgid "config is already in a metaconfig"
msgstr "" msgstr ""
#: tiramisu/config.py:1208 #: tiramisu/config.py:1178 tiramisu/config.py:1247
msgid "child must be a Config or MetaConfig"
msgstr ""
#: tiramisu/config.py:1212
msgid "all config in metaconfig must have the same optiondescription"
msgstr ""
#: tiramisu/config.py:1225
msgid "config name must be uniq in groupconfig for {0}" msgid "config name must be uniq in groupconfig for {0}"
msgstr "" msgstr ""
#: tiramisu/config.py:1250 #: tiramisu/config.py:1192
msgid "cannot find the config {}" msgid "cannot find the config {}"
msgstr "" msgstr ""
#: tiramisu/config.py:1211
msgid "MetaConfig with optiondescription must have string has child, not {}"
msgstr ""
#: tiramisu/config.py:1230
msgid "child must be a Config or MetaConfig"
msgstr ""
#: tiramisu/config.py:1234
msgid "all config in metaconfig must have the same optiondescription"
msgstr ""
#: tiramisu/config.py:1272
msgid "metaconfig must have the same optiondescription"
msgstr ""
#: tiramisu/error.py:24 #: tiramisu/error.py:24
msgid "and" msgid "and"
msgstr "" msgstr ""
@ -223,11 +231,11 @@ msgstr ""
msgid " {} " msgid " {} "
msgstr "" msgstr ""
#: tiramisu/error.py:103 tiramisu/setting.py:563 #: tiramisu/error.py:103 tiramisu/setting.py:579
msgid "property" msgid "property"
msgstr "" msgstr ""
#: tiramisu/error.py:105 tiramisu/setting.py:565 #: tiramisu/error.py:105 tiramisu/setting.py:581
msgid "properties" msgid "properties"
msgstr "" msgstr ""
@ -239,38 +247,42 @@ msgstr ""
msgid "cannot access to {0} \"{1}\" because has {2} {3}" msgid "cannot access to {0} \"{1}\" because has {2} {3}"
msgstr "" msgstr ""
#: tiramisu/error.py:185 #: tiramisu/error.py:189
msgid "invalid value" msgid "invalid value"
msgstr "" msgstr ""
#: tiramisu/error.py:190 #: tiramisu/error.py:194
msgid "attention, \"{0}\" could be an invalid {1} for \"{2}\"" msgid "attention, \"{0}\" could be an invalid {1} for \"{2}\""
msgstr "" msgstr ""
#: tiramisu/error.py:194 tiramisu/error.py:198 #: tiramisu/error.py:198 tiramisu/error.py:202
msgid "\"{0}\" is an invalid {1} for \"{2}\"" msgid "\"{0}\" is an invalid {1} for \"{2}\""
msgstr "" msgstr ""
#: tiramisu/function.py:31 #: tiramisu/function.py:34
msgid "args in params must be a tuple" msgid "args in params must be a tuple"
msgstr "" msgstr ""
#: tiramisu/function.py:34 tiramisu/function.py:39 #: tiramisu/function.py:37 tiramisu/function.py:42
msgid "arg in params must be a Param" msgid "arg in params must be a Param"
msgstr "" msgstr ""
#: tiramisu/function.py:36 #: tiramisu/function.py:39
msgid "kwargs in params must be a dict" msgid "kwargs in params must be a dict"
msgstr "" msgstr ""
#: tiramisu/function.py:52 #: tiramisu/function.py:58
msgid "paramoption needs an option not {}" msgid "paramoption needs an option not {}"
msgstr "" msgstr ""
#: tiramisu/function.py:58 #: tiramisu/function.py:64
msgid "param must have a boolean not a {} for notraisepropertyerror" msgid "param must have a boolean not a {} for notraisepropertyerror"
msgstr "" msgstr ""
#: tiramisu/function.py:271
msgid "unexpected {} condition_operator in calc_value"
msgstr ""
#: tiramisu/option/baseoption.py:75 tiramisu/option/symlinkoption.py:33 #: tiramisu/option/baseoption.py:75 tiramisu/option/symlinkoption.py:33
msgid "\"{0}\" is an invalid name for an option" msgid "\"{0}\" is an invalid name for an option"
msgstr "" msgstr ""
@ -299,124 +311,124 @@ msgstr ""
msgid "missing those arguments \"{}\" in function \"{}\" for \"{}\"" msgid "missing those arguments \"{}\" in function \"{}\" for \"{}\""
msgstr "" msgstr ""
#: tiramisu/option/baseoption.py:257 #: tiramisu/option/baseoption.py:258
msgid "params defined for a callback function but no callback defined yet for option \"{0}\"" msgid "params defined for a callback function but no callback defined yet for option \"{0}\""
msgstr "" msgstr ""
#: tiramisu/option/baseoption.py:349 tiramisu/storage/dictionary/value.py:275 #: tiramisu/option/baseoption.py:350 tiramisu/storage/dictionary/value.py:275
#: tiramisu/storage/sqlite3/value.py:201 #: tiramisu/storage/sqlite3/value.py:201
msgid "information's item not found: {0}" msgid "information's item not found: {0}"
msgstr "" msgstr ""
#: tiramisu/option/baseoption.py:362 #: tiramisu/option/baseoption.py:363
msgid "'{0}' ({1}) object attribute '{2}' is read-only" msgid "'{0}' ({1}) object attribute '{2}' is read-only"
msgstr "" msgstr ""
#: tiramisu/option/baseoption.py:393 #: tiramisu/option/baseoption.py:394
msgid "\"{}\" ({}) object attribute \"{}\" is read-only" msgid "\"{}\" ({}) object attribute \"{}\" is read-only"
msgstr "" msgstr ""
#: tiramisu/option/baseoption.py:403 #: tiramisu/option/baseoption.py:404
msgid "\"{}\" not part of any Config" msgid "\"{}\" not part of any Config"
msgstr "" msgstr ""
#: tiramisu/option/baseoption.py:450 #: tiramisu/option/baseoption.py:453
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:453 #: tiramisu/option/baseoption.py:456
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:486 #: tiramisu/option/baseoption.py:495
msgid "malformed requirements expected must have option and value for option {0}" msgid "malformed requirements expected must have option and value for option {0}"
msgstr "" msgstr ""
#: tiramisu/option/baseoption.py:493 tiramisu/option/baseoption.py:509 #: tiramisu/option/baseoption.py:502 tiramisu/option/baseoption.py:518
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:523 #: tiramisu/option/baseoption.py:532
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:531 #: tiramisu/option/baseoption.py:540
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:538 #: tiramisu/option/baseoption.py:547
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:545 #: tiramisu/option/baseoption.py:554
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:552 #: tiramisu/option/baseoption.py:561
msgid "malformed requirements for option: \"{0}\" operator must be \"or\" or \"and\"" msgid "malformed requirements for option: \"{0}\" operator must be \"or\" or \"and\""
msgstr "" msgstr ""
#: tiramisu/option/baseoption.py:564 #: tiramisu/option/baseoption.py:574
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:570 #: tiramisu/option/baseoption.py:580
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:579 #: tiramisu/option/baseoption.py:592
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/booloption.py:30 #: tiramisu/option/booloption.py:31
msgid "boolean" msgid "boolean"
msgstr "" msgstr ""
#: tiramisu/option/broadcastoption.py:31 #: tiramisu/option/broadcastoption.py:32
msgid "broadcast address" msgid "broadcast address"
msgstr "" msgstr ""
#: tiramisu/option/broadcastoption.py:38 tiramisu/option/dateoption.py:37 #: tiramisu/option/broadcastoption.py:39 tiramisu/option/dateoption.py:38
#: tiramisu/option/domainnameoption.py:113 tiramisu/option/ipoption.py:77 #: tiramisu/option/domainnameoption.py:118 tiramisu/option/ipoption.py:83
#: tiramisu/option/netmaskoption.py:41 tiramisu/option/networkoption.py:67 #: tiramisu/option/netmaskoption.py:42 tiramisu/option/networkoption.py:68
#: tiramisu/option/passwordoption.py:38 tiramisu/option/portoption.py:106 #: tiramisu/option/passwordoption.py:39 tiramisu/option/portoption.py:107
#: tiramisu/option/urloption.py:40 #: tiramisu/option/urloption.py:41
msgid "invalid string" msgid "invalid string"
msgstr "" msgstr ""
#: tiramisu/option/broadcastoption.py:56 #: tiramisu/option/broadcastoption.py:57
msgid "invalid len for vals" msgid "invalid len for vals"
msgstr "" msgstr ""
#: tiramisu/option/broadcastoption.py:61 #: tiramisu/option/broadcastoption.py:62
msgid "broadcast \"{4}\" invalid with network {0}/{1} (\"{2}\"/\"{3}\")" msgid "broadcast \"{4}\" invalid with network {0}/{1} (\"{2}\"/\"{3}\")"
msgstr "" msgstr ""
#: tiramisu/option/choiceoption.py:36 #: tiramisu/option/choiceoption.py:37
msgid "choice" msgid "choice"
msgstr "" msgstr ""
#: tiramisu/option/choiceoption.py:65 #: tiramisu/option/choiceoption.py:66
msgid "values is not a function, so values_params must be None" msgid "values is not a function, so values_params must be None"
msgstr "" msgstr ""
#: tiramisu/option/choiceoption.py:67 #: tiramisu/option/choiceoption.py:68
msgid "values must be a tuple or a function for {0}" msgid "values must be a tuple or a function for {0}"
msgstr "" msgstr ""
#: tiramisu/option/choiceoption.py:100 #: tiramisu/option/choiceoption.py:101
msgid "calculated values for {0} is not a list" msgid "calculated values for {0} is not a list"
msgstr "" msgstr ""
#: tiramisu/option/choiceoption.py:113 #: tiramisu/option/choiceoption.py:114
msgid "only \"{0}\" is allowed" msgid "only \"{0}\" is allowed"
msgstr "" msgstr ""
#: tiramisu/option/choiceoption.py:116 #: tiramisu/option/choiceoption.py:117
msgid "only \"{0}\" are allowed" msgid "only \"{0}\" are allowed"
msgstr "" msgstr ""
#: tiramisu/option/dateoption.py:30 #: tiramisu/option/dateoption.py:31
msgid "date" msgid "date"
msgstr "" msgstr ""
@ -424,43 +436,43 @@ msgstr ""
msgid "domain name" msgid "domain name"
msgstr "" msgstr ""
#: tiramisu/option/domainnameoption.py:58 #: tiramisu/option/domainnameoption.py:59
msgid "unknown type_ {0} for hostname" msgid "unknown type_ {0} for hostname"
msgstr "" msgstr ""
#: tiramisu/option/domainnameoption.py:61 #: tiramisu/option/domainnameoption.py:62
msgid "allow_ip must be a boolean" msgid "allow_ip must be a boolean"
msgstr "" msgstr ""
#: tiramisu/option/domainnameoption.py:63 #: tiramisu/option/domainnameoption.py:64
msgid "allow_without_dot must be a boolean" msgid "allow_without_dot must be a boolean"
msgstr "" msgstr ""
#: tiramisu/option/domainnameoption.py:107 #: tiramisu/option/domainnameoption.py:112
msgid "invalid length (min 1)" msgid "invalid length (min 1)"
msgstr "" msgstr ""
#: tiramisu/option/domainnameoption.py:109 #: tiramisu/option/domainnameoption.py:114
msgid "invalid length (max {0})" msgid "invalid length (max {0})"
msgstr "" msgstr ""
#: tiramisu/option/domainnameoption.py:121 #: tiramisu/option/domainnameoption.py:125
msgid "must not be an IP" msgid "must not be an IP"
msgstr "" msgstr ""
#: tiramisu/option/domainnameoption.py:125 #: tiramisu/option/domainnameoption.py:131
msgid "must have dot" msgid "must have dot"
msgstr "" msgstr ""
#: tiramisu/option/domainnameoption.py:127 #: tiramisu/option/domainnameoption.py:133
msgid "invalid length (max 255)" msgid "invalid length (max 255)"
msgstr "" msgstr ""
#: tiramisu/option/domainnameoption.py:135 #: tiramisu/option/domainnameoption.py:141
msgid "some characters are uppercase" msgid "some characters are uppercase"
msgstr "" msgstr ""
#: tiramisu/option/domainnameoption.py:138 #: tiramisu/option/domainnameoption.py:144
msgid "some characters may cause problems" msgid "some characters may cause problems"
msgstr "" msgstr ""
@ -488,63 +500,63 @@ msgstr ""
msgid "DynOptionDescription callback return a list with multiple value \"{}\"" msgid "DynOptionDescription callback return a list with multiple value \"{}\""
msgstr "" msgstr ""
#: tiramisu/option/emailoption.py:31 #: tiramisu/option/emailoption.py:32
msgid "email address" msgid "email address"
msgstr "" msgstr ""
#: tiramisu/option/filenameoption.py:30 #: tiramisu/option/filenameoption.py:31
msgid "file name" msgid "file name"
msgstr "" msgstr ""
#: tiramisu/option/floatoption.py:30 #: tiramisu/option/floatoption.py:31
msgid "float" msgid "float"
msgstr "" msgstr ""
#: tiramisu/option/intoption.py:30 #: tiramisu/option/intoption.py:31
msgid "integer" msgid "integer"
msgstr "" msgstr ""
#: tiramisu/option/intoption.py:54 #: tiramisu/option/intoption.py:55
msgid "value must be greater than \"{0}\"" msgid "value must be greater than \"{0}\""
msgstr "" msgstr ""
#: tiramisu/option/intoption.py:57 #: tiramisu/option/intoption.py:58
msgid "value must be less than \"{0}\"" msgid "value must be less than \"{0}\""
msgstr "" msgstr ""
#: tiramisu/option/ipoption.py:35 #: tiramisu/option/ipoption.py:36
msgid "IP" msgid "IP"
msgstr "" msgstr ""
#: tiramisu/option/ipoption.py:83 tiramisu/option/networkoption.py:73 #: tiramisu/option/ipoption.py:89 tiramisu/option/networkoption.py:74
msgid "must use CIDR notation" msgid "must use CIDR notation"
msgstr "" msgstr ""
#: tiramisu/option/ipoption.py:105 #: tiramisu/option/ipoption.py:111
msgid "shouldn't be reserved IP" msgid "shouldn't be reserved IP"
msgstr "" msgstr ""
#: tiramisu/option/ipoption.py:107 #: tiramisu/option/ipoption.py:113
msgid "mustn't be reserved IP" msgid "mustn't be reserved IP"
msgstr "" msgstr ""
#: tiramisu/option/ipoption.py:111 #: tiramisu/option/ipoption.py:117
msgid "should be private IP" msgid "should be private IP"
msgstr "" msgstr ""
#: tiramisu/option/ipoption.py:113 #: tiramisu/option/ipoption.py:119
msgid "must be private IP" msgid "must be private IP"
msgstr "" msgstr ""
#: tiramisu/option/ipoption.py:141 #: tiramisu/option/ipoption.py:147
msgid "\"{0}\" is not in network \"{1}\" (\"{2}\")" msgid "\"{0}\" is not in network \"{1}\" (\"{2}\")"
msgstr "" msgstr ""
#: tiramisu/option/ipoption.py:157 #: tiramisu/option/ipoption.py:163
msgid "ip_network needs an IP, a network and a netmask" msgid "ip_network needs an IP, a network and a netmask"
msgstr "" msgstr ""
#: tiramisu/option/ipoption.py:163 #: tiramisu/option/ipoption.py:169
msgid "\"{4}\" is not in network \"{0}\"/\"{1}\" (\"{2}\"/\"{3}\")" msgid "\"{4}\" is not in network \"{0}\"/\"{1}\" (\"{2}\"/\"{3}\")"
msgstr "" msgstr ""
@ -580,51 +592,51 @@ msgstr ""
msgid "malformed requirements option \"{0}\" must not be in follower for \"{1}\"" msgid "malformed requirements option \"{0}\" must not be in follower for \"{1}\""
msgstr "" msgstr ""
#: tiramisu/option/netmaskoption.py:34 #: tiramisu/option/netmaskoption.py:35
msgid "netmask address" msgid "netmask address"
msgstr "" msgstr ""
#: tiramisu/option/netmaskoption.py:59 #: tiramisu/option/netmaskoption.py:60
msgid "network_netmask needs a network and a netmask" msgid "network_netmask needs a network and a netmask"
msgstr "" msgstr ""
#: tiramisu/option/netmaskoption.py:68 #: tiramisu/option/netmaskoption.py:69
msgid "with netmask \"{0}\" (\"{1}\")" msgid "with netmask \"{0}\" (\"{1}\")"
msgstr "" msgstr ""
#: tiramisu/option/netmaskoption.py:71 #: tiramisu/option/netmaskoption.py:72
msgid "with network \"{0}\" (\"{1}\")" msgid "with network \"{0}\" (\"{1}\")"
msgstr "" msgstr ""
#: tiramisu/option/netmaskoption.py:82 #: tiramisu/option/netmaskoption.py:83
msgid "ip_netmask needs an IP and a netmask" msgid "ip_netmask needs an IP and a netmask"
msgstr "" msgstr ""
#: tiramisu/option/netmaskoption.py:90 #: tiramisu/option/netmaskoption.py:91
msgid "this is a network with netmask \"{0}\" (\"{1}\")" msgid "this is a network with netmask \"{0}\" (\"{1}\")"
msgstr "" msgstr ""
#: tiramisu/option/netmaskoption.py:94 #: tiramisu/option/netmaskoption.py:95
msgid "this is a broadcast with netmask \"{0}\" (\"{1}\")" msgid "this is a broadcast with netmask \"{0}\" (\"{1}\")"
msgstr "" msgstr ""
#: tiramisu/option/netmaskoption.py:99 #: tiramisu/option/netmaskoption.py:100
msgid "IP \"{0}\" (\"{1}\") is the network" msgid "IP \"{0}\" (\"{1}\") is the network"
msgstr "" msgstr ""
#: tiramisu/option/netmaskoption.py:103 #: tiramisu/option/netmaskoption.py:104
msgid "IP \"{0}\" (\"{1}\") is the broadcast" msgid "IP \"{0}\" (\"{1}\") is the broadcast"
msgstr "" msgstr ""
#: tiramisu/option/networkoption.py:31 #: tiramisu/option/networkoption.py:32
msgid "network address" msgid "network address"
msgstr "" msgstr ""
#: tiramisu/option/networkoption.py:90 #: tiramisu/option/networkoption.py:91
msgid "shouldn't be reserved network" msgid "shouldn't be reserved network"
msgstr "" msgstr ""
#: tiramisu/option/networkoption.py:92 #: tiramisu/option/networkoption.py:93
msgid "mustn't be reserved network" msgid "mustn't be reserved network"
msgstr "" msgstr ""
@ -652,79 +664,79 @@ msgstr ""
msgid "invalid default_multi value \"{0}\" for option \"{1}\", must be a list for a submulti" msgid "invalid default_multi value \"{0}\" for option \"{1}\", must be a list for a submulti"
msgstr "" msgstr ""
#: tiramisu/option/option.py:255 #: tiramisu/option/option.py:259
msgid "invalid value \"{}\", this value is already in \"{}\"" msgid "invalid value \"{}\", this value is already in \"{}\""
msgstr "" msgstr ""
#: tiramisu/option/option.py:285 #: tiramisu/option/option.py:289
msgid "which must not be a list" msgid "which must not be a list"
msgstr "" msgstr ""
#: tiramisu/option/option.py:319 tiramisu/option/option.py:328 #: tiramisu/option/option.py:323 tiramisu/option/option.py:332
msgid "which must be a list" msgid "which must be a list"
msgstr "" msgstr ""
#: tiramisu/option/option.py:333 #: tiramisu/option/option.py:337
msgid "which \"{}\" must be a list of list" msgid "which \"{}\" must be a list of list"
msgstr "" msgstr ""
#: tiramisu/option/option.py:375 #: tiramisu/option/option.py:379
msgid "default value not allowed if option \"{0}\" is calculated" msgid "default value not allowed if option \"{0}\" is calculated"
msgstr "" msgstr ""
#: tiramisu/option/option.py:423 #: tiramisu/option/option.py:427
msgid "'{0}' ({1}) cannot add consistency, option is read-only" msgid "'{0}' ({1}) cannot add consistency, option is read-only"
msgstr "" msgstr ""
#: tiramisu/option/option.py:431 #: tiramisu/option/option.py:435
msgid "consistency {0} not available for this option" msgid "consistency {0} not available for this option"
msgstr "" msgstr ""
#: tiramisu/option/option.py:438 #: tiramisu/option/option.py:442
msgid "unknown parameter {0} in consistency" msgid "unknown parameter {0} in consistency"
msgstr "" msgstr ""
#: tiramisu/option/option.py:550 tiramisu/option/option.py:555 #: tiramisu/option/option.py:554 tiramisu/option/option.py:559
msgid "cannot add consistency with submulti option" msgid "cannot add consistency with submulti option"
msgstr "" msgstr ""
#: tiramisu/option/option.py:556 #: tiramisu/option/option.py:560
msgid "consistency must be set with an option, not {}" msgid "consistency must be set with an option, not {}"
msgstr "" msgstr ""
#: tiramisu/option/option.py:559 tiramisu/option/option.py:567 #: tiramisu/option/option.py:563 tiramisu/option/option.py:571
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/option.py:563 #: tiramisu/option/option.py:567
msgid "option in consistency must be in same dynoptiondescription" msgid "option in consistency must be in same dynoptiondescription"
msgstr "" msgstr ""
#: tiramisu/option/option.py:570 #: tiramisu/option/option.py:574
msgid "cannot add consistency with itself" msgid "cannot add consistency with itself"
msgstr "" msgstr ""
#: tiramisu/option/option.py:572 #: tiramisu/option/option.py:576
msgid "every options in consistency must be multi or none" msgid "every options in consistency must be multi or none"
msgstr "" msgstr ""
#: tiramisu/option/option.py:612 #: tiramisu/option/option.py:616
msgid "unexpected length of \"{}\" in constency \"{}\", should be \"{}\"" msgid "unexpected length of \"{}\" in constency \"{}\", should be \"{}\""
msgstr "" msgstr ""
#: tiramisu/option/option.py:712 #: tiramisu/option/option.py:716
msgid "should be different from the value of \"{}\"" msgid "should be different from the value of \"{}\""
msgstr "" msgstr ""
#: tiramisu/option/option.py:714 #: tiramisu/option/option.py:718
msgid "must be different from the value of \"{}\"" msgid "must be different from the value of \"{}\""
msgstr "" msgstr ""
#: tiramisu/option/option.py:717 #: tiramisu/option/option.py:721
msgid "value for {} should be different" msgid "value for {} should be different"
msgstr "" msgstr ""
#: tiramisu/option/option.py:719 #: tiramisu/option/option.py:723
msgid "value for {} must be different" msgid "value for {} must be different"
msgstr "" msgstr ""
@ -741,7 +753,7 @@ msgstr ""
msgid "the dynoption \"{0}\" cannot have \"force_store_value\" property" msgid "the dynoption \"{0}\" cannot have \"force_store_value\" property"
msgstr "" msgstr ""
#: tiramisu/option/optiondescription.py:97 tiramisu/setting.py:643 #: tiramisu/option/optiondescription.py:97 tiramisu/setting.py:665
msgid "a leader ({0}) cannot have \"force_default_on_freeze\" or \"force_metaconfig_on_freeze\" property without \"frozen\"" msgid "a leader ({0}) cannot have \"force_default_on_freeze\" or \"force_metaconfig_on_freeze\" property without \"frozen\""
msgstr "" msgstr ""
@ -797,35 +809,35 @@ msgstr ""
msgid "group_type: {0} not allowed" msgid "group_type: {0} not allowed"
msgstr "" msgstr ""
#: tiramisu/option/passwordoption.py:31 #: tiramisu/option/passwordoption.py:32
msgid "password" msgid "password"
msgstr "" msgstr ""
#: tiramisu/option/portoption.py:43 #: tiramisu/option/portoption.py:44
msgid "port" msgid "port"
msgstr "" msgstr ""
#: tiramisu/option/portoption.py:80 #: tiramisu/option/portoption.py:81
msgid "inconsistency in allowed range" msgid "inconsistency in allowed range"
msgstr "" msgstr ""
#: tiramisu/option/portoption.py:85 #: tiramisu/option/portoption.py:86
msgid "max value is empty" msgid "max value is empty"
msgstr "" msgstr ""
#: tiramisu/option/portoption.py:110 #: tiramisu/option/portoption.py:111
msgid "range must have two values only" msgid "range must have two values only"
msgstr "" msgstr ""
#: tiramisu/option/portoption.py:112 #: tiramisu/option/portoption.py:113
msgid "first port in range must be smaller than the second one" msgid "first port in range must be smaller than the second one"
msgstr "" msgstr ""
#: tiramisu/option/portoption.py:122 #: tiramisu/option/portoption.py:123
msgid "must be an integer between {0} and {1}" msgid "must be an integer between {0} and {1}"
msgstr "" msgstr ""
#: tiramisu/option/stroption.py:32 #: tiramisu/option/stroption.py:33
msgid "string" msgid "string"
msgstr "" msgstr ""
@ -837,23 +849,23 @@ msgstr ""
msgid "unknown option \"{0}\" in syndynoptiondescription \"{1}\"" msgid "unknown option \"{0}\" in syndynoptiondescription \"{1}\""
msgstr "" msgstr ""
#: tiramisu/option/urloption.py:33 #: tiramisu/option/urloption.py:34
msgid "URL" msgid "URL"
msgstr "" msgstr ""
#: tiramisu/option/urloption.py:43 #: tiramisu/option/urloption.py:44
msgid "must start with http:// or https://" msgid "must start with http:// or https://"
msgstr "" msgstr ""
#: tiramisu/option/urloption.py:61 #: tiramisu/option/urloption.py:62
msgid "port must be an between 0 and 65536" msgid "port must be an between 0 and 65536"
msgstr "" msgstr ""
#: tiramisu/option/urloption.py:70 #: tiramisu/option/urloption.py:71
msgid "must ends with a valid resource name" msgid "must ends with a valid resource name"
msgstr "" msgstr ""
#: tiramisu/option/usernameoption.py:31 #: tiramisu/option/usernameoption.py:32
msgid "username" msgid "username"
msgstr "" msgstr ""
@ -865,47 +877,55 @@ msgstr ""
msgid "can't unbind {0}" msgid "can't unbind {0}"
msgstr "" msgstr ""
#: tiramisu/setting.py:518 #: tiramisu/setting.py:519
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:566 #: tiramisu/setting.py:582
msgid "cannot access to option \"{0}\" because required option \"{1}\" has {2} {3}" msgid "cannot access to option \"{0}\" because required option \"{1}\" has {2} {3}"
msgstr "" msgstr ""
#: tiramisu/setting.py:590 #: tiramisu/setting.py:608
msgid "the calculated value is {0}"
msgstr ""
#: tiramisu/setting.py:610
msgid "the calculated value is not {0}"
msgstr ""
#: tiramisu/setting.py:614
msgid "the value of \"{0}\" is {1}" msgid "the value of \"{0}\" is {1}"
msgstr "" msgstr ""
#: tiramisu/setting.py:592 #: tiramisu/setting.py:616
msgid "the value of \"{0}\" is not {1}" msgid "the value of \"{0}\" is not {1}"
msgstr "" msgstr ""
#: tiramisu/setting.py:633 #: tiramisu/setting.py:655
msgid "cannot set property {} for option \"{}\" this property is calculated" msgid "cannot set property {} for option \"{}\" this property is calculated"
msgstr "" msgstr ""
#: tiramisu/setting.py:638 #: tiramisu/setting.py:660
msgid "can't assign property to the symlinkoption \"{}\"" msgid "can't assign property to the symlinkoption \"{}\""
msgstr "" msgstr ""
#: tiramisu/setting.py:670 #: tiramisu/setting.py:692
msgid "permissive must be a frozenset" msgid "permissive must be a frozenset"
msgstr "" msgstr ""
#: tiramisu/setting.py:674 #: tiramisu/setting.py:696
msgid "can't assign permissive to the symlinkoption \"{}\"" msgid "can't assign permissive to the symlinkoption \"{}\""
msgstr "" msgstr ""
#: tiramisu/setting.py:681 #: tiramisu/setting.py:703
msgid "cannot add those permissives: {0}" msgid "cannot add those permissives: {0}"
msgstr "" msgstr ""
#: tiramisu/setting.py:698 #: tiramisu/setting.py:720
msgid "can't reset properties to the symlinkoption \"{}\"" msgid "can't reset properties to the symlinkoption \"{}\""
msgstr "" msgstr ""
#: tiramisu/setting.py:713 #: tiramisu/setting.py:735
msgid "can't reset permissives to the symlinkoption \"{}\"" msgid "can't reset permissives to the symlinkoption \"{}\""
msgstr "" msgstr ""
@ -939,19 +959,19 @@ msgstr ""
msgid "cannot change setting when connexion is already opened" msgid "cannot change setting when connexion is already opened"
msgstr "" msgstr ""
#: tiramisu/value.py:424 #: tiramisu/value.py:427
msgid "can't set owner for the symlinkoption \"{}\"" msgid "can't set owner for the symlinkoption \"{}\""
msgstr "" msgstr ""
#: tiramisu/value.py:427 tiramisu/value.py:639 #: tiramisu/value.py:430 tiramisu/value.py:642
msgid "set owner \"{0}\" is forbidden" msgid "set owner \"{0}\" is forbidden"
msgstr "" msgstr ""
#: tiramisu/value.py:430 #: tiramisu/value.py:433
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:508 #: tiramisu/value.py:511
msgid "index \"{}\" is higher than the length \"{}\" for option \"{}\"" msgid "index \"{}\" is higher than the length \"{}\" for option \"{}\""
msgstr "" msgstr ""

0
tiramisu/storage/cache/__init__.py vendored Normal file
View file