flit
This commit is contained in:
parent
4dbb82ed3f
commit
48b3b7e8a4
11 changed files with 252 additions and 226 deletions
1
.gitignore
vendored
1
.gitignore
vendored
|
@ -3,5 +3,4 @@
|
|||
*.pyc
|
||||
*.mo
|
||||
*.swp
|
||||
version.in
|
||||
build/
|
||||
|
|
8
MANIFEST.in
Normal file
8
MANIFEST.in
Normal 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
|
14
Makefile
14
Makefile
|
@ -10,7 +10,7 @@ INSTALL_DATA := install -m 644
|
|||
INSTALL_PROGRAM := install -m 755
|
||||
INSTALL_DIR := install -m 755 -d
|
||||
|
||||
TRADUC_DIR = translations
|
||||
TRADUC_DIR = tiramisu/locale
|
||||
TRADUC_DEST = $(DESTDIR)/usr/share/locale
|
||||
|
||||
PYTHON_OPTS =
|
||||
|
@ -26,7 +26,7 @@ define gettext
|
|||
else \
|
||||
P="pygettext.py" ; \
|
||||
fi ; \
|
||||
$$P -p translations/ -o $(PACKAGE).pot `find $(PACKAGE)/ -name "*.py"`
|
||||
$$P -p $(TRADUC_DIR)/ -o $(PACKAGE).pot `find $(PACKAGE)/ -name "*.py"`
|
||||
endef
|
||||
|
||||
# Build translation files
|
||||
|
@ -69,12 +69,12 @@ build-pot:
|
|||
build-lang:
|
||||
$(call build_translation, $(TRADUC_DIR))
|
||||
|
||||
install-lang:
|
||||
$(INSTALL_DIR) $(TRADUC_DEST)
|
||||
$(call install_translation, $(TRADUC_DIR))
|
||||
# install-lang:
|
||||
# $(INSTALL_DIR) $(TRADUC_DEST)
|
||||
# $(call install_translation, $(TRADUC_DIR))
|
||||
|
||||
install: install-lang
|
||||
python setup.py install --no-compile $(PYTHON_OPTS)
|
||||
install: # install-lang
|
||||
python3 setup.py install --no-compile $(PYTHON_OPTS)
|
||||
|
||||
dist:
|
||||
git archive --format=tar --prefix $(PACKAGE)-$(VERSION)/ HEAD | gzip -9 > $(PACKAGE)-$(VERSION).tar.gz
|
||||
|
|
1
VERSION
1
VERSION
|
@ -1 +0,0 @@
|
|||
master
|
17
pyproject.toml
Normal file
17
pyproject.toml
Normal 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"
|
55
setup.py
55
setup.py
|
@ -1,57 +1,28 @@
|
|||
#!/usr/bin/env python
|
||||
# -*- 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 import listdir
|
||||
import os
|
||||
from tiramisu import __version__
|
||||
|
||||
|
||||
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 = {}
|
||||
PACKAGE_NAME = os.environ.get('PACKAGE_DST', 'tiramisu')
|
||||
|
||||
setup(
|
||||
version=__version__,
|
||||
author="Tiramisu's team",
|
||||
author_email='contact@cadoles.com',
|
||||
name=package_name,
|
||||
version=fetch_version(),
|
||||
author_email='gnunux@gnunux.info',
|
||||
name=PACKAGE_NAME,
|
||||
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=[
|
||||
"Programming Language :: Python",
|
||||
"Programming Language :: Python :: 2",
|
||||
"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)",
|
||||
"Operating System :: OS Independent",
|
||||
"Topic :: Software Development :: Libraries :: Python Modules",
|
||||
"Topic :: Text Processing :: Linguistic"
|
||||
"Natural Language :: English",
|
||||
"Natural Language :: French",
|
||||
],
|
||||
long_description="""\
|
||||
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.
|
||||
|
||||
|
||||
This version requires Python 2.6 or later.
|
||||
This version requires Python 3.5 or later.
|
||||
""",
|
||||
packages=packages,
|
||||
package_dir=package_dir
|
||||
include_package_data=True,
|
||||
packages=find_packages(include=['tiramisu'])
|
||||
)
|
||||
|
|
|
@ -12,6 +12,8 @@
|
|||
#
|
||||
# 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/>.
|
||||
"""Configuration management library written in python
|
||||
"""
|
||||
from .function import Params, ParamOption, ParamValue, ParamContext, \
|
||||
tiramisu_copy, calc_value
|
||||
from .option import *
|
||||
|
@ -43,3 +45,4 @@ allfuncs.extend(all_options)
|
|||
del(all_options)
|
||||
__all__ = tuple(allfuncs)
|
||||
del(allfuncs)
|
||||
__version__ = "3.0rc5"
|
||||
|
|
|
@ -18,34 +18,43 @@
|
|||
# the rough gus of pypy: pypy: http://codespeak.net/svn/pypy/dist/pypy/config/
|
||||
# the whole pypy projet is under MIT licence
|
||||
"internationalisation utilities"
|
||||
import gettext
|
||||
import os
|
||||
import sys
|
||||
import locale
|
||||
from gettext import translation, NullTranslations
|
||||
from platform import system
|
||||
from pkg_resources import resource_filename
|
||||
from .log import log
|
||||
|
||||
# Application Name
|
||||
APP_NAME = 'tiramisu'
|
||||
|
||||
# Traduction dir
|
||||
APP_DIR = os.path.join(sys.prefix, 'share')
|
||||
LOCALE_DIR = os.path.join(APP_DIR, 'locale')
|
||||
def get_translation() -> str:
|
||||
"""Sets the user locale as langage
|
||||
The default is set to english
|
||||
"""
|
||||
# Application name (without .i18n)
|
||||
app_name = __name__[:-5]
|
||||
translations_path = resource_filename(app_name, 'locale')
|
||||
|
||||
# Default Lanugage
|
||||
DEFAULT_LANG = os.environ.get('LANG', '').split(':')
|
||||
DEFAULT_LANG += ['en_US']
|
||||
if 'Windows' in system():
|
||||
import ctypes
|
||||
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
|
||||
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
|
||||
_ = get_translation()
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
msgid ""
|
||||
msgstr ""
|
||||
"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"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
|
@ -55,31 +55,31 @@ msgstr ""
|
|||
msgid "cannot add this property: \"{0}\""
|
||||
msgstr ""
|
||||
|
||||
#: tiramisu/api.py:503 tiramisu/config.py:252
|
||||
#: tiramisu/api.py:504 tiramisu/config.py:252
|
||||
msgid "can't delete a SymLinkOption"
|
||||
msgstr ""
|
||||
|
||||
#: tiramisu/api.py:636 tiramisu/api.py:1322
|
||||
#: tiramisu/api.py:637 tiramisu/api.py:1326
|
||||
msgid "please specify a valid sub function ({})"
|
||||
msgstr ""
|
||||
|
||||
#: tiramisu/api.py:699 tiramisu/api.py:1145
|
||||
#: tiramisu/api.py:700 tiramisu/api.py:1146
|
||||
msgid "unknown list type {}"
|
||||
msgstr ""
|
||||
|
||||
#: tiramisu/api.py:701 tiramisu/api.py:1147
|
||||
#: tiramisu/api.py:702 tiramisu/api.py:1148
|
||||
msgid "unknown group_type: {0}"
|
||||
msgstr ""
|
||||
|
||||
#: tiramisu/api.py:974
|
||||
#: tiramisu/api.py:975
|
||||
msgid "properties must be a set"
|
||||
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)"
|
||||
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 {}"
|
||||
msgstr ""
|
||||
|
||||
|
@ -171,7 +171,7 @@ msgstr ""
|
|||
msgid "unknown config \"{}\""
|
||||
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 {}"
|
||||
msgstr ""
|
||||
|
||||
|
@ -191,26 +191,34 @@ msgstr ""
|
|||
msgid "force_default and force_dont_change_value cannot be set together"
|
||||
msgstr ""
|
||||
|
||||
#: tiramisu/config.py:1189
|
||||
msgid "MetaConfig with optiondescription must have string has child, not {}"
|
||||
#: tiramisu/config.py:1176
|
||||
msgid "config is already in a metaconfig"
|
||||
msgstr ""
|
||||
|
||||
#: tiramisu/config.py:1208
|
||||
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
|
||||
#: tiramisu/config.py:1178 tiramisu/config.py:1247
|
||||
msgid "config name must be uniq in groupconfig for {0}"
|
||||
msgstr ""
|
||||
|
||||
#: tiramisu/config.py:1250
|
||||
#: tiramisu/config.py:1192
|
||||
msgid "cannot find the config {}"
|
||||
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
|
||||
msgid "and"
|
||||
msgstr ""
|
||||
|
@ -223,11 +231,11 @@ msgstr ""
|
|||
msgid " {} "
|
||||
msgstr ""
|
||||
|
||||
#: tiramisu/error.py:103 tiramisu/setting.py:563
|
||||
#: tiramisu/error.py:103 tiramisu/setting.py:579
|
||||
msgid "property"
|
||||
msgstr ""
|
||||
|
||||
#: tiramisu/error.py:105 tiramisu/setting.py:565
|
||||
#: tiramisu/error.py:105 tiramisu/setting.py:581
|
||||
msgid "properties"
|
||||
msgstr ""
|
||||
|
||||
|
@ -239,38 +247,42 @@ msgstr ""
|
|||
msgid "cannot access to {0} \"{1}\" because has {2} {3}"
|
||||
msgstr ""
|
||||
|
||||
#: tiramisu/error.py:185
|
||||
#: tiramisu/error.py:189
|
||||
msgid "invalid value"
|
||||
msgstr ""
|
||||
|
||||
#: tiramisu/error.py:190
|
||||
#: tiramisu/error.py:194
|
||||
msgid "attention, \"{0}\" could be an invalid {1} for \"{2}\""
|
||||
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}\""
|
||||
msgstr ""
|
||||
|
||||
#: tiramisu/function.py:31
|
||||
#: tiramisu/function.py:34
|
||||
msgid "args in params must be a tuple"
|
||||
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"
|
||||
msgstr ""
|
||||
|
||||
#: tiramisu/function.py:36
|
||||
#: tiramisu/function.py:39
|
||||
msgid "kwargs in params must be a dict"
|
||||
msgstr ""
|
||||
|
||||
#: tiramisu/function.py:52
|
||||
#: tiramisu/function.py:58
|
||||
msgid "paramoption needs an option not {}"
|
||||
msgstr ""
|
||||
|
||||
#: tiramisu/function.py:58
|
||||
#: tiramisu/function.py:64
|
||||
msgid "param must have a boolean not a {} for notraisepropertyerror"
|
||||
msgstr ""
|
||||
|
||||
#: tiramisu/function.py:271
|
||||
msgid "unexpected {} condition_operator in calc_value"
|
||||
msgstr ""
|
||||
|
||||
#: tiramisu/option/baseoption.py:75 tiramisu/option/symlinkoption.py:33
|
||||
msgid "\"{0}\" is an invalid name for an option"
|
||||
msgstr ""
|
||||
|
@ -299,124 +311,124 @@ msgstr ""
|
|||
msgid "missing those arguments \"{}\" in function \"{}\" for \"{}\""
|
||||
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}\""
|
||||
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
|
||||
msgid "information's item not found: {0}"
|
||||
msgstr ""
|
||||
|
||||
#: tiramisu/option/baseoption.py:362
|
||||
#: tiramisu/option/baseoption.py:363
|
||||
msgid "'{0}' ({1}) object attribute '{2}' is read-only"
|
||||
msgstr ""
|
||||
|
||||
#: tiramisu/option/baseoption.py:393
|
||||
#: tiramisu/option/baseoption.py:394
|
||||
msgid "\"{}\" ({}) object attribute \"{}\" is read-only"
|
||||
msgstr ""
|
||||
|
||||
#: tiramisu/option/baseoption.py:403
|
||||
#: tiramisu/option/baseoption.py:404
|
||||
msgid "\"{}\" not part of any Config"
|
||||
msgstr ""
|
||||
|
||||
#: tiramisu/option/baseoption.py:450
|
||||
#: tiramisu/option/baseoption.py:453
|
||||
msgid "malformed requirements must be an option in option {0}"
|
||||
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}"
|
||||
msgstr ""
|
||||
|
||||
#: tiramisu/option/baseoption.py:486
|
||||
#: tiramisu/option/baseoption.py:495
|
||||
msgid "malformed requirements expected must have option and value for option {0}"
|
||||
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}"
|
||||
msgstr ""
|
||||
|
||||
#: tiramisu/option/baseoption.py:523
|
||||
#: tiramisu/option/baseoption.py:532
|
||||
msgid "malformed requirements for option: {0} action cannot be force_store_value"
|
||||
msgstr ""
|
||||
|
||||
#: tiramisu/option/baseoption.py:531
|
||||
#: tiramisu/option/baseoption.py:540
|
||||
msgid "malformed requirements for option: {0} inverse must be boolean"
|
||||
msgstr ""
|
||||
|
||||
#: tiramisu/option/baseoption.py:538
|
||||
#: tiramisu/option/baseoption.py:547
|
||||
msgid "malformed requirements for option: {0} transitive must be boolean"
|
||||
msgstr ""
|
||||
|
||||
#: tiramisu/option/baseoption.py:545
|
||||
#: tiramisu/option/baseoption.py:554
|
||||
msgid "malformed requirements for option: {0} same_action must be boolean"
|
||||
msgstr ""
|
||||
|
||||
#: tiramisu/option/baseoption.py:552
|
||||
#: tiramisu/option/baseoption.py:561
|
||||
msgid "malformed requirements for option: \"{0}\" operator must be \"or\" or \"and\""
|
||||
msgstr ""
|
||||
|
||||
#: tiramisu/option/baseoption.py:564
|
||||
#: tiramisu/option/baseoption.py:574
|
||||
msgid "malformed requirements type for option: {0}, must be a dict"
|
||||
msgstr ""
|
||||
|
||||
#: tiramisu/option/baseoption.py:570
|
||||
#: tiramisu/option/baseoption.py:580
|
||||
msgid "malformed requirements for option: {0} unknown keys {1}, must only {2}"
|
||||
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"
|
||||
msgstr ""
|
||||
|
||||
#: tiramisu/option/booloption.py:30
|
||||
#: tiramisu/option/booloption.py:31
|
||||
msgid "boolean"
|
||||
msgstr ""
|
||||
|
||||
#: tiramisu/option/broadcastoption.py:31
|
||||
#: tiramisu/option/broadcastoption.py:32
|
||||
msgid "broadcast address"
|
||||
msgstr ""
|
||||
|
||||
#: tiramisu/option/broadcastoption.py:38 tiramisu/option/dateoption.py:37
|
||||
#: tiramisu/option/domainnameoption.py:113 tiramisu/option/ipoption.py:77
|
||||
#: tiramisu/option/netmaskoption.py:41 tiramisu/option/networkoption.py:67
|
||||
#: tiramisu/option/passwordoption.py:38 tiramisu/option/portoption.py:106
|
||||
#: tiramisu/option/urloption.py:40
|
||||
#: tiramisu/option/broadcastoption.py:39 tiramisu/option/dateoption.py:38
|
||||
#: tiramisu/option/domainnameoption.py:118 tiramisu/option/ipoption.py:83
|
||||
#: tiramisu/option/netmaskoption.py:42 tiramisu/option/networkoption.py:68
|
||||
#: tiramisu/option/passwordoption.py:39 tiramisu/option/portoption.py:107
|
||||
#: tiramisu/option/urloption.py:41
|
||||
msgid "invalid string"
|
||||
msgstr ""
|
||||
|
||||
#: tiramisu/option/broadcastoption.py:56
|
||||
#: tiramisu/option/broadcastoption.py:57
|
||||
msgid "invalid len for vals"
|
||||
msgstr ""
|
||||
|
||||
#: tiramisu/option/broadcastoption.py:61
|
||||
#: tiramisu/option/broadcastoption.py:62
|
||||
msgid "broadcast \"{4}\" invalid with network {0}/{1} (\"{2}\"/\"{3}\")"
|
||||
msgstr ""
|
||||
|
||||
#: tiramisu/option/choiceoption.py:36
|
||||
#: tiramisu/option/choiceoption.py:37
|
||||
msgid "choice"
|
||||
msgstr ""
|
||||
|
||||
#: tiramisu/option/choiceoption.py:65
|
||||
#: tiramisu/option/choiceoption.py:66
|
||||
msgid "values is not a function, so values_params must be None"
|
||||
msgstr ""
|
||||
|
||||
#: tiramisu/option/choiceoption.py:67
|
||||
#: tiramisu/option/choiceoption.py:68
|
||||
msgid "values must be a tuple or a function for {0}"
|
||||
msgstr ""
|
||||
|
||||
#: tiramisu/option/choiceoption.py:100
|
||||
#: tiramisu/option/choiceoption.py:101
|
||||
msgid "calculated values for {0} is not a list"
|
||||
msgstr ""
|
||||
|
||||
#: tiramisu/option/choiceoption.py:113
|
||||
#: tiramisu/option/choiceoption.py:114
|
||||
msgid "only \"{0}\" is allowed"
|
||||
msgstr ""
|
||||
|
||||
#: tiramisu/option/choiceoption.py:116
|
||||
#: tiramisu/option/choiceoption.py:117
|
||||
msgid "only \"{0}\" are allowed"
|
||||
msgstr ""
|
||||
|
||||
#: tiramisu/option/dateoption.py:30
|
||||
#: tiramisu/option/dateoption.py:31
|
||||
msgid "date"
|
||||
msgstr ""
|
||||
|
||||
|
@ -424,43 +436,43 @@ msgstr ""
|
|||
msgid "domain name"
|
||||
msgstr ""
|
||||
|
||||
#: tiramisu/option/domainnameoption.py:58
|
||||
#: tiramisu/option/domainnameoption.py:59
|
||||
msgid "unknown type_ {0} for hostname"
|
||||
msgstr ""
|
||||
|
||||
#: tiramisu/option/domainnameoption.py:61
|
||||
#: tiramisu/option/domainnameoption.py:62
|
||||
msgid "allow_ip must be a boolean"
|
||||
msgstr ""
|
||||
|
||||
#: tiramisu/option/domainnameoption.py:63
|
||||
#: tiramisu/option/domainnameoption.py:64
|
||||
msgid "allow_without_dot must be a boolean"
|
||||
msgstr ""
|
||||
|
||||
#: tiramisu/option/domainnameoption.py:107
|
||||
#: tiramisu/option/domainnameoption.py:112
|
||||
msgid "invalid length (min 1)"
|
||||
msgstr ""
|
||||
|
||||
#: tiramisu/option/domainnameoption.py:109
|
||||
#: tiramisu/option/domainnameoption.py:114
|
||||
msgid "invalid length (max {0})"
|
||||
msgstr ""
|
||||
|
||||
#: tiramisu/option/domainnameoption.py:121
|
||||
#: tiramisu/option/domainnameoption.py:125
|
||||
msgid "must not be an IP"
|
||||
msgstr ""
|
||||
|
||||
#: tiramisu/option/domainnameoption.py:125
|
||||
#: tiramisu/option/domainnameoption.py:131
|
||||
msgid "must have dot"
|
||||
msgstr ""
|
||||
|
||||
#: tiramisu/option/domainnameoption.py:127
|
||||
#: tiramisu/option/domainnameoption.py:133
|
||||
msgid "invalid length (max 255)"
|
||||
msgstr ""
|
||||
|
||||
#: tiramisu/option/domainnameoption.py:135
|
||||
#: tiramisu/option/domainnameoption.py:141
|
||||
msgid "some characters are uppercase"
|
||||
msgstr ""
|
||||
|
||||
#: tiramisu/option/domainnameoption.py:138
|
||||
#: tiramisu/option/domainnameoption.py:144
|
||||
msgid "some characters may cause problems"
|
||||
msgstr ""
|
||||
|
||||
|
@ -488,63 +500,63 @@ msgstr ""
|
|||
msgid "DynOptionDescription callback return a list with multiple value \"{}\""
|
||||
msgstr ""
|
||||
|
||||
#: tiramisu/option/emailoption.py:31
|
||||
#: tiramisu/option/emailoption.py:32
|
||||
msgid "email address"
|
||||
msgstr ""
|
||||
|
||||
#: tiramisu/option/filenameoption.py:30
|
||||
#: tiramisu/option/filenameoption.py:31
|
||||
msgid "file name"
|
||||
msgstr ""
|
||||
|
||||
#: tiramisu/option/floatoption.py:30
|
||||
#: tiramisu/option/floatoption.py:31
|
||||
msgid "float"
|
||||
msgstr ""
|
||||
|
||||
#: tiramisu/option/intoption.py:30
|
||||
#: tiramisu/option/intoption.py:31
|
||||
msgid "integer"
|
||||
msgstr ""
|
||||
|
||||
#: tiramisu/option/intoption.py:54
|
||||
#: tiramisu/option/intoption.py:55
|
||||
msgid "value must be greater than \"{0}\""
|
||||
msgstr ""
|
||||
|
||||
#: tiramisu/option/intoption.py:57
|
||||
#: tiramisu/option/intoption.py:58
|
||||
msgid "value must be less than \"{0}\""
|
||||
msgstr ""
|
||||
|
||||
#: tiramisu/option/ipoption.py:35
|
||||
#: tiramisu/option/ipoption.py:36
|
||||
msgid "IP"
|
||||
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"
|
||||
msgstr ""
|
||||
|
||||
#: tiramisu/option/ipoption.py:105
|
||||
#: tiramisu/option/ipoption.py:111
|
||||
msgid "shouldn't be reserved IP"
|
||||
msgstr ""
|
||||
|
||||
#: tiramisu/option/ipoption.py:107
|
||||
#: tiramisu/option/ipoption.py:113
|
||||
msgid "mustn't be reserved IP"
|
||||
msgstr ""
|
||||
|
||||
#: tiramisu/option/ipoption.py:111
|
||||
#: tiramisu/option/ipoption.py:117
|
||||
msgid "should be private IP"
|
||||
msgstr ""
|
||||
|
||||
#: tiramisu/option/ipoption.py:113
|
||||
#: tiramisu/option/ipoption.py:119
|
||||
msgid "must be private IP"
|
||||
msgstr ""
|
||||
|
||||
#: tiramisu/option/ipoption.py:141
|
||||
#: tiramisu/option/ipoption.py:147
|
||||
msgid "\"{0}\" is not in network \"{1}\" (\"{2}\")"
|
||||
msgstr ""
|
||||
|
||||
#: tiramisu/option/ipoption.py:157
|
||||
#: tiramisu/option/ipoption.py:163
|
||||
msgid "ip_network needs an IP, a network and a netmask"
|
||||
msgstr ""
|
||||
|
||||
#: tiramisu/option/ipoption.py:163
|
||||
#: tiramisu/option/ipoption.py:169
|
||||
msgid "\"{4}\" is not in network \"{0}\"/\"{1}\" (\"{2}\"/\"{3}\")"
|
||||
msgstr ""
|
||||
|
||||
|
@ -580,51 +592,51 @@ msgstr ""
|
|||
msgid "malformed requirements option \"{0}\" must not be in follower for \"{1}\""
|
||||
msgstr ""
|
||||
|
||||
#: tiramisu/option/netmaskoption.py:34
|
||||
#: tiramisu/option/netmaskoption.py:35
|
||||
msgid "netmask address"
|
||||
msgstr ""
|
||||
|
||||
#: tiramisu/option/netmaskoption.py:59
|
||||
#: tiramisu/option/netmaskoption.py:60
|
||||
msgid "network_netmask needs a network and a netmask"
|
||||
msgstr ""
|
||||
|
||||
#: tiramisu/option/netmaskoption.py:68
|
||||
#: tiramisu/option/netmaskoption.py:69
|
||||
msgid "with netmask \"{0}\" (\"{1}\")"
|
||||
msgstr ""
|
||||
|
||||
#: tiramisu/option/netmaskoption.py:71
|
||||
#: tiramisu/option/netmaskoption.py:72
|
||||
msgid "with network \"{0}\" (\"{1}\")"
|
||||
msgstr ""
|
||||
|
||||
#: tiramisu/option/netmaskoption.py:82
|
||||
#: tiramisu/option/netmaskoption.py:83
|
||||
msgid "ip_netmask needs an IP and a netmask"
|
||||
msgstr ""
|
||||
|
||||
#: tiramisu/option/netmaskoption.py:90
|
||||
#: tiramisu/option/netmaskoption.py:91
|
||||
msgid "this is a network with netmask \"{0}\" (\"{1}\")"
|
||||
msgstr ""
|
||||
|
||||
#: tiramisu/option/netmaskoption.py:94
|
||||
#: tiramisu/option/netmaskoption.py:95
|
||||
msgid "this is a broadcast with netmask \"{0}\" (\"{1}\")"
|
||||
msgstr ""
|
||||
|
||||
#: tiramisu/option/netmaskoption.py:99
|
||||
#: tiramisu/option/netmaskoption.py:100
|
||||
msgid "IP \"{0}\" (\"{1}\") is the network"
|
||||
msgstr ""
|
||||
|
||||
#: tiramisu/option/netmaskoption.py:103
|
||||
#: tiramisu/option/netmaskoption.py:104
|
||||
msgid "IP \"{0}\" (\"{1}\") is the broadcast"
|
||||
msgstr ""
|
||||
|
||||
#: tiramisu/option/networkoption.py:31
|
||||
#: tiramisu/option/networkoption.py:32
|
||||
msgid "network address"
|
||||
msgstr ""
|
||||
|
||||
#: tiramisu/option/networkoption.py:90
|
||||
#: tiramisu/option/networkoption.py:91
|
||||
msgid "shouldn't be reserved network"
|
||||
msgstr ""
|
||||
|
||||
#: tiramisu/option/networkoption.py:92
|
||||
#: tiramisu/option/networkoption.py:93
|
||||
msgid "mustn't be reserved network"
|
||||
msgstr ""
|
||||
|
||||
|
@ -652,79 +664,79 @@ msgstr ""
|
|||
msgid "invalid default_multi value \"{0}\" for option \"{1}\", must be a list for a submulti"
|
||||
msgstr ""
|
||||
|
||||
#: tiramisu/option/option.py:255
|
||||
#: tiramisu/option/option.py:259
|
||||
msgid "invalid value \"{}\", this value is already in \"{}\""
|
||||
msgstr ""
|
||||
|
||||
#: tiramisu/option/option.py:285
|
||||
#: tiramisu/option/option.py:289
|
||||
msgid "which must not be a list"
|
||||
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"
|
||||
msgstr ""
|
||||
|
||||
#: tiramisu/option/option.py:333
|
||||
#: tiramisu/option/option.py:337
|
||||
msgid "which \"{}\" must be a list of list"
|
||||
msgstr ""
|
||||
|
||||
#: tiramisu/option/option.py:375
|
||||
#: tiramisu/option/option.py:379
|
||||
msgid "default value not allowed if option \"{0}\" is calculated"
|
||||
msgstr ""
|
||||
|
||||
#: tiramisu/option/option.py:423
|
||||
#: tiramisu/option/option.py:427
|
||||
msgid "'{0}' ({1}) cannot add consistency, option is read-only"
|
||||
msgstr ""
|
||||
|
||||
#: tiramisu/option/option.py:431
|
||||
#: tiramisu/option/option.py:435
|
||||
msgid "consistency {0} not available for this option"
|
||||
msgstr ""
|
||||
|
||||
#: tiramisu/option/option.py:438
|
||||
#: tiramisu/option/option.py:442
|
||||
msgid "unknown parameter {0} in consistency"
|
||||
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"
|
||||
msgstr ""
|
||||
|
||||
#: tiramisu/option/option.py:556
|
||||
#: tiramisu/option/option.py:560
|
||||
msgid "consistency must be set with an option, not {}"
|
||||
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"
|
||||
msgstr ""
|
||||
|
||||
#: tiramisu/option/option.py:563
|
||||
#: tiramisu/option/option.py:567
|
||||
msgid "option in consistency must be in same dynoptiondescription"
|
||||
msgstr ""
|
||||
|
||||
#: tiramisu/option/option.py:570
|
||||
#: tiramisu/option/option.py:574
|
||||
msgid "cannot add consistency with itself"
|
||||
msgstr ""
|
||||
|
||||
#: tiramisu/option/option.py:572
|
||||
#: tiramisu/option/option.py:576
|
||||
msgid "every options in consistency must be multi or none"
|
||||
msgstr ""
|
||||
|
||||
#: tiramisu/option/option.py:612
|
||||
#: tiramisu/option/option.py:616
|
||||
msgid "unexpected length of \"{}\" in constency \"{}\", should be \"{}\""
|
||||
msgstr ""
|
||||
|
||||
#: tiramisu/option/option.py:712
|
||||
#: tiramisu/option/option.py:716
|
||||
msgid "should be different from the value of \"{}\""
|
||||
msgstr ""
|
||||
|
||||
#: tiramisu/option/option.py:714
|
||||
#: tiramisu/option/option.py:718
|
||||
msgid "must be different from the value of \"{}\""
|
||||
msgstr ""
|
||||
|
||||
#: tiramisu/option/option.py:717
|
||||
#: tiramisu/option/option.py:721
|
||||
msgid "value for {} should be different"
|
||||
msgstr ""
|
||||
|
||||
#: tiramisu/option/option.py:719
|
||||
#: tiramisu/option/option.py:723
|
||||
msgid "value for {} must be different"
|
||||
msgstr ""
|
||||
|
||||
|
@ -741,7 +753,7 @@ msgstr ""
|
|||
msgid "the dynoption \"{0}\" cannot have \"force_store_value\" property"
|
||||
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\""
|
||||
msgstr ""
|
||||
|
||||
|
@ -797,35 +809,35 @@ msgstr ""
|
|||
msgid "group_type: {0} not allowed"
|
||||
msgstr ""
|
||||
|
||||
#: tiramisu/option/passwordoption.py:31
|
||||
#: tiramisu/option/passwordoption.py:32
|
||||
msgid "password"
|
||||
msgstr ""
|
||||
|
||||
#: tiramisu/option/portoption.py:43
|
||||
#: tiramisu/option/portoption.py:44
|
||||
msgid "port"
|
||||
msgstr ""
|
||||
|
||||
#: tiramisu/option/portoption.py:80
|
||||
#: tiramisu/option/portoption.py:81
|
||||
msgid "inconsistency in allowed range"
|
||||
msgstr ""
|
||||
|
||||
#: tiramisu/option/portoption.py:85
|
||||
#: tiramisu/option/portoption.py:86
|
||||
msgid "max value is empty"
|
||||
msgstr ""
|
||||
|
||||
#: tiramisu/option/portoption.py:110
|
||||
#: tiramisu/option/portoption.py:111
|
||||
msgid "range must have two values only"
|
||||
msgstr ""
|
||||
|
||||
#: tiramisu/option/portoption.py:112
|
||||
#: tiramisu/option/portoption.py:113
|
||||
msgid "first port in range must be smaller than the second one"
|
||||
msgstr ""
|
||||
|
||||
#: tiramisu/option/portoption.py:122
|
||||
#: tiramisu/option/portoption.py:123
|
||||
msgid "must be an integer between {0} and {1}"
|
||||
msgstr ""
|
||||
|
||||
#: tiramisu/option/stroption.py:32
|
||||
#: tiramisu/option/stroption.py:33
|
||||
msgid "string"
|
||||
msgstr ""
|
||||
|
||||
|
@ -837,23 +849,23 @@ msgstr ""
|
|||
msgid "unknown option \"{0}\" in syndynoptiondescription \"{1}\""
|
||||
msgstr ""
|
||||
|
||||
#: tiramisu/option/urloption.py:33
|
||||
#: tiramisu/option/urloption.py:34
|
||||
msgid "URL"
|
||||
msgstr ""
|
||||
|
||||
#: tiramisu/option/urloption.py:43
|
||||
#: tiramisu/option/urloption.py:44
|
||||
msgid "must start with http:// or https://"
|
||||
msgstr ""
|
||||
|
||||
#: tiramisu/option/urloption.py:61
|
||||
#: tiramisu/option/urloption.py:62
|
||||
msgid "port must be an between 0 and 65536"
|
||||
msgstr ""
|
||||
|
||||
#: tiramisu/option/urloption.py:70
|
||||
#: tiramisu/option/urloption.py:71
|
||||
msgid "must ends with a valid resource name"
|
||||
msgstr ""
|
||||
|
||||
#: tiramisu/option/usernameoption.py:31
|
||||
#: tiramisu/option/usernameoption.py:32
|
||||
msgid "username"
|
||||
msgstr ""
|
||||
|
||||
|
@ -865,47 +877,55 @@ msgstr ""
|
|||
msgid "can't unbind {0}"
|
||||
msgstr ""
|
||||
|
||||
#: tiramisu/setting.py:518
|
||||
#: tiramisu/setting.py:519
|
||||
msgid "malformed requirements imbrication detected for option: '{0}' with requirement on: '{1}'"
|
||||
msgstr ""
|
||||
|
||||
#: tiramisu/setting.py:566
|
||||
#: tiramisu/setting.py:582
|
||||
msgid "cannot access to option \"{0}\" because required option \"{1}\" has {2} {3}"
|
||||
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}"
|
||||
msgstr ""
|
||||
|
||||
#: tiramisu/setting.py:592
|
||||
#: tiramisu/setting.py:616
|
||||
msgid "the value of \"{0}\" is not {1}"
|
||||
msgstr ""
|
||||
|
||||
#: tiramisu/setting.py:633
|
||||
#: tiramisu/setting.py:655
|
||||
msgid "cannot set property {} for option \"{}\" this property is calculated"
|
||||
msgstr ""
|
||||
|
||||
#: tiramisu/setting.py:638
|
||||
#: tiramisu/setting.py:660
|
||||
msgid "can't assign property to the symlinkoption \"{}\""
|
||||
msgstr ""
|
||||
|
||||
#: tiramisu/setting.py:670
|
||||
#: tiramisu/setting.py:692
|
||||
msgid "permissive must be a frozenset"
|
||||
msgstr ""
|
||||
|
||||
#: tiramisu/setting.py:674
|
||||
#: tiramisu/setting.py:696
|
||||
msgid "can't assign permissive to the symlinkoption \"{}\""
|
||||
msgstr ""
|
||||
|
||||
#: tiramisu/setting.py:681
|
||||
#: tiramisu/setting.py:703
|
||||
msgid "cannot add those permissives: {0}"
|
||||
msgstr ""
|
||||
|
||||
#: tiramisu/setting.py:698
|
||||
#: tiramisu/setting.py:720
|
||||
msgid "can't reset properties to the symlinkoption \"{}\""
|
||||
msgstr ""
|
||||
|
||||
#: tiramisu/setting.py:713
|
||||
#: tiramisu/setting.py:735
|
||||
msgid "can't reset permissives to the symlinkoption \"{}\""
|
||||
msgstr ""
|
||||
|
||||
|
@ -939,19 +959,19 @@ msgstr ""
|
|||
msgid "cannot change setting when connexion is already opened"
|
||||
msgstr ""
|
||||
|
||||
#: tiramisu/value.py:424
|
||||
#: tiramisu/value.py:427
|
||||
msgid "can't set owner for the symlinkoption \"{}\""
|
||||
msgstr ""
|
||||
|
||||
#: tiramisu/value.py:427 tiramisu/value.py:639
|
||||
#: tiramisu/value.py:430 tiramisu/value.py:642
|
||||
msgid "set owner \"{0}\" is forbidden"
|
||||
msgstr ""
|
||||
|
||||
#: tiramisu/value.py:430
|
||||
#: tiramisu/value.py:433
|
||||
msgid "no value for {0} cannot change owner to {1}"
|
||||
msgstr ""
|
||||
|
||||
#: tiramisu/value.py:508
|
||||
#: tiramisu/value.py:511
|
||||
msgid "index \"{}\" is higher than the length \"{}\" for option \"{}\""
|
||||
msgstr ""
|
||||
|
0
tiramisu/storage/cache/__init__.py
vendored
Normal file
0
tiramisu/storage/cache/__init__.py
vendored
Normal file
Loading…
Reference in a new issue