Compare commits

...

38 commits

Author SHA1 Message Date
5565f33f27 bump: version 0.1.0a15 → 0.1.0a16 2025-12-22 09:16:53 +01:00
90613a0b47 fix: add description for validators 2025-12-19 13:33:07 +01:00
b282fd2d7a bump: version 0.1.0a14 → 0.1.0a15 2025-11-21 07:59:29 +01:00
fb230276a8 fix: ExtentionError => ExtensionError 2025-11-21 07:59:17 +01:00
5d39620e39 bump: version 0.1.0a13 → 0.1.0a14 2025-11-06 06:23:42 +01:00
717fa7f367 fix: add translation 2025-11-05 21:37:23 +01:00
43bd217f32 fix: update tests 2025-11-05 21:36:41 +01:00
2fd6427742 bump: version 0.1.0a12 → 0.1.0a13 2025-10-29 11:17:13 +01:00
2f044ec999 feat: can define a new separator 2025-10-29 11:16:37 +01:00
6e4440683a bump: version 0.1.0a11 → 0.1.0a12 2025-10-10 08:11:15 +02:00
61d96ba6ce fix: update test 2025-10-10 08:01:45 +02:00
70efb3d8ad fix: translation + tests 2025-10-05 21:25:12 +02:00
8224b8929f fix: tests for formatter 2025-09-30 21:50:42 +02:00
4061e96511 bump: version 0.1.0a10 → 0.1.0a11 2025-09-29 11:01:41 +02:00
bccea20ded feat: default value for a calculated variable with an unknown optional variable 2025-09-28 15:46:40 +02:00
9e9de6a1de feat: update tests for integer type 2025-09-24 08:52:07 +02:00
29b96dc712 bump: version 0.1.0a9 → 0.1.0a10 2025-09-22 14:18:50 +02:00
d03c084b60 fix: dictionary => structure 2025-09-22 14:18:35 +02:00
3d9f9b3fb4 bump: version 0.1.0a8 → 0.1.0a9 2025-06-18 07:57:12 +03:00
a9ce48d03a fix: rougail separation 2025-06-18 07:38:04 +03:00
fce409cde9 bump: version 0.1.0a7 → 0.1.0a8 2025-05-12 09:07:25 +02:00
58677d06c0 fix: black 2025-05-11 19:10:08 +02:00
7646c85546 feat: display loaded_from informations 2025-05-11 19:10:02 +02:00
e3e531bfba bump: version 0.1.0a6 → 0.1.0a7 2025-05-02 08:15:26 +02:00
9c94e9fc50 fix: do not force use_data usage 2025-05-02 08:15:23 +02:00
cd8deea394 bump: version 0.1.0a5 → 0.1.0a6 2025-04-30 09:06:18 +02:00
41001235c3 fix: update tests 2025-04-27 10:20:38 +02:00
c4ce985783 bump: version 0.1.0a4 → 0.1.0a5 2025-04-09 21:41:10 +02:00
86c46161a1 fix: version 2025-04-09 21:41:06 +02:00
2dd15183c9 bump: version 0.1.0a3 → 0.1.0a4 2025-04-01 22:16:57 +02:00
e8aa8d6b10 fix: update tests 2025-04-01 22:00:24 +02:00
071c97bbb0 bump: version 0.1.0a2 → 0.1.0a3 2025-03-30 18:50:46 +02:00
9dbc3a068d fix: update tests 2025-03-30 18:50:15 +02:00
c6ab62eb78 fix: update tests, some errors are now in warnings level 2025-03-02 17:41:30 +01:00
cf2bb7500f bump: version 0.1.0a1 → 0.1.0a2 2025-02-10 09:30:40 +01:00
b1dc690fb7 fix: rename source 2025-02-10 09:30:20 +01:00
bc35561a52 fix: add test without namespace 2024-12-16 17:23:34 +01:00
15c6a2930a fix: update tests 2024-12-09 10:13:44 +01:00
4059 changed files with 11732 additions and 2718 deletions

View file

@ -1,3 +1,104 @@
## 0.1.0a16 (2025-12-22)
### Fix
- add description for validators
## 0.1.0a15 (2025-11-21)
### Fix
- ExtentionError => ExtensionError
## 0.1.0a14 (2025-11-06)
### Fix
- add translation
- update tests
## 0.1.0a13 (2025-10-29)
### Feat
- can define a new separator
## 0.1.0a12 (2025-10-10)
### Fix
- update test
- translation + tests
- tests for formatter
## 0.1.0a11 (2025-09-29)
### Feat
- default value for a calculated variable with an unknown optional variable
- update tests for integer type
## 0.1.0a10 (2025-09-22)
### Fix
- dictionary => structure
## 0.1.0a9 (2025-06-18)
### Fix
- rougail separation
## 0.1.0a8 (2025-05-12)
### Feat
- display loaded_from informations
### Fix
- black
## 0.1.0a7 (2025-05-02)
### Fix
- do not force use_data usage
## 0.1.0a6 (2025-04-30)
### Fix
- update tests
## 0.1.0a5 (2025-04-09)
### Fix
- version
## 0.1.0a4 (2025-04-01)
### Fix
- update tests
## 0.1.0a3 (2025-03-30)
### Fix
- update tests
- update tests, some errors are now in warnings level
## 0.1.0a2 (2025-02-10)
### Fix
- rename source
- add test without namespace
- update tests
## 0.1.0a1 (2024-11-27)
### Fix

View file

@ -0,0 +1,48 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR ORGANIZATION
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
#
msgid ""
msgstr ""
"Project-Id-Version: \n"
"POT-Creation-Date: 2025-10-04 17:04+0200\n"
"PO-Revision-Date: 2025-10-04 17:04+0200\n"
"Last-Translator: \n"
"Language-Team: \n"
"Language: fr\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Generated-By: pygettext.py 1.5\n"
"X-Generator: Poedit 3.7\n"
#: src/rougail/user_data_environment/annotator.py:46
msgid ""
"family name must be a lowercase name when we want to use user data "
"\"environment\", so \"{0}\" is invalid"
msgstr ""
"le nom d'une famille doit être un nom en minuscule lorsque vous voulez "
"utiliser de données utilisateur \"environment\", donc \"{0}\" est invalide"
#: src/rougail/user_data_environment/annotator.py:56
msgid ""
"variable name must be a lowercase name when we want to use user data "
"\"environment\", so \"{0}\" is invalid"
msgstr ""
"le nom d'une variable doit être un nom en minuscule lorsque vous voulez "
"utiliser de données utilisateur \"environment\", donc \"{0}\" est invalide"
#: src/rougail/user_data_environment/config.py:34
msgid "Configuration loading environment variables"
msgstr "Configuration le chargement des variables d'environnements"
#: src/rougail/user_data_environment/config.py:42
msgid "Name of the default environment prefix"
msgstr "Nom du préfix d'environnement par défaut"
#: src/rougail/user_data_environment/config.py:49
msgid "Environnement variables may contain secrets"
msgstr "Les variables d'environnement peuvent contenir des secrets"
#~ msgid "Define values from the environment"
#~ msgstr "Défini les valeurs pour l'environnemnt"

View file

@ -0,0 +1,37 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR ORGANIZATION
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
#
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"POT-Creation-Date: 2025-10-04 17:05+0200\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"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Generated-By: pygettext.py 1.5\n"
#: src/rougail/user_data_environment/annotator.py:46
msgid "family name must be a lowercase name when we want to use user data \"environment\", so \"{0}\" is invalid"
msgstr ""
#: src/rougail/user_data_environment/annotator.py:56
msgid "variable name must be a lowercase name when we want to use user data \"environment\", so \"{0}\" is invalid"
msgstr ""
#: src/rougail/user_data_environment/config.py:34
msgid "Configuration loading environment variables"
msgstr ""
#: src/rougail/user_data_environment/config.py:42
msgid "Name of the default environment prefix"
msgstr ""
#: src/rougail/user_data_environment/config.py:49
msgid "Environnement variables may contain secrets"
msgstr ""

View file

@ -4,7 +4,7 @@ requires = ["flit_core >=3.8.0,<4"]
[project]
name = "rougail.user_data_environment"
version = "0.1.0a1"
version = "0.1.0a16"
authors = [{name = "Emmanuel Garette", email = "gnunux@gnunux.info"}]
readme = "README.md"
description = "Rougail user_data environment"
@ -13,11 +13,10 @@ license = {file = "LICENSE"}
classifiers = [
"License :: OSI Approved :: GNU Library or Lesser General Public License (LGPL)",
"Programming Language :: Python",
"Programming Language :: Python :: 3.8",
"Programming Language :: Python :: 3.9",
"Programming Language :: Python :: 3.10",
"Programming Language :: Python :: 3.11",
"Programming Language :: Python :: 3.12",
"Programming Language :: Python :: 3.13",
"Programming Language :: Python :: 3.14",
"Programming Language :: Python :: 3",
"Operating System :: OS Independent",
"Natural Language :: English",
@ -36,5 +35,9 @@ name = "cz_conventional_commits"
tag_format = "$version"
version_scheme = "pep440"
version_provider = "pep621"
version_files = [
"src/rougail/user_data_environment/__version__.py",
"pyproject.toml:version"
]
update_changelog_on_bump = true
changelog_merge_prerelease = true

View file

@ -1,3 +1,6 @@
from .data import RougailUserDataEnvironment
from .__version__ import __version__
RougailUserData = RougailUserDataEnvironment
__all__ = ('RougailUserDataEnvironment',)
__all__ = ("RougailUserDataEnvironment",)

View file

@ -0,0 +1 @@
__version__ = "0.1.0a16"

View file

@ -1,6 +1,6 @@
"""
Silique (https://www.silique.fr)
Copyright (C) 2024
Copyright (C) 2024-2025
distribued with GPL-2 or later license
@ -18,6 +18,7 @@ You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
"""
from rougail.error import DictConsistencyError
from rougail.annotator.variable import Walk
from .i18n import _
@ -42,11 +43,19 @@ class Annotator(Walk):
def check_family(self):
for family in self.get_families():
if family.name != family.name.lower():
msg = _('family name must be a lowercase name when we want to use user data "environment", so "{0}" is invalid')
raise DictConsistencyError(msg.format(family.name), 200, family.xmlfiles)
msg = _(
'family name must be a lowercase name when we want to use user data "environment", so "{0}" is invalid'
)
raise DictConsistencyError(
msg.format(family.name), 200, family.xmlfiles
)
def check_variable(self):
for variable in self.get_variables():
if variable.name != variable.name.lower():
msg = _('variable name must be a lowercase name when we want to use user data "environment", so "{0}" is invalid')
raise DictConsistencyError(msg.format(variable.name), 201, variable.xmlfiles)
msg = _(
'variable name must be a lowercase name when we want to use user data "environment", so "{0}" is invalid'
)
raise DictConsistencyError(
msg.format(variable.name), 201, variable.xmlfiles
)

View file

@ -2,7 +2,7 @@
Config file for Rougail-user-data-environment
Silique (https://www.silique.fr)
Copyright (C) 2024
Copyright (C) 2024-2025
distribued with GPL-2 or later license
@ -22,31 +22,49 @@ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
"""
def get_rougail_config(*,
from .i18n import _
def get_rougail_config(
*,
backward_compatibility=True,
) -> dict:
options = """
options = f"""
environment:
description: Define values from the environment
description: {_("Configuration loading environment variables")}
disabled:
jinja: |
{% if 'environment' not in step.user_data %}
{{% if _.step.user_data is propertyerror or 'environment' not in _.step.user_data %}}
disabled
{% endif %}
{{% endif %}}
default_environment_name:
description: Name of the default environment prefix
default:
variable: main_namespace
mandatory: true
description: {_("Name of the default environment prefix")}
default: ROUGAIL
validators:
- jinja: |-
{{{{ _.default_environment_name | upper != _.default_environment_name }}}}
return_type: boolean
description: {_("should only user uppercase character")}
disabled:
variable: main_namespace
variable: __.main_namespace
when_not: null
custom_separator:
description: {_('Replace the separator character "." in path by an other')}
help: {_('The "." character could be not allowed in path name')}
mandatory: false
with_secrets:
description: {_("Environnement variables may contain secrets")}
default: true
"""
return {'name': 'environment',
'process': 'user data',
'options': options,
'level': 50,
return {
"name": "environment",
"process": "user data",
"options": options,
"level": 50,
}
__all__ = ('get_rougail_config',)
__all__ = ("get_rougail_config",)

View file

@ -1,6 +1,6 @@
"""
Silique (https://www.silique.fr)
Copyright (C) 2024
Copyright (C) 2024-2025
distribued with GPL-2 or later license
@ -18,14 +18,18 @@ You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
"""
import os
from rougail.object_model import CONVERT_OPTION
from rougail.tiramisu import CONVERT_OPTION
from rougail.config import RougailConfig
from rougail.error import ExtensionError
from tiramisu.error import ValueOptionError
class RougailUserDataEnvironment:
def __init__(self,
config: 'Config',
def __init__(
self,
config: "Config",
*,
rougailconfig: RougailConfig = None,
):
@ -33,53 +37,71 @@ class RougailUserDataEnvironment:
self.config = config
if rougailconfig is None:
rougailconfig = RougailConfig
user_data = rougailconfig['step.user_data']
if 'environment' not in user_data:
user_data.append('environment')
rougailconfig['step.user_data'] = user_data
user_data = rougailconfig['step.user_data']
self.rougailconfig = rougailconfig
if 'environment' not in user_data:
raise Exception('environment is not set in step.user_data')
user_data = rougailconfig["step.user_data"]
if "environment" not in user_data:
user_data.append("environment")
rougailconfig["step.user_data"] = user_data
user_data = rougailconfig["step.user_data"]
if "environment" not in user_data:
raise ExtensionError("environment is not set in step.user_data")
if "environment.with_secrets" in rougailconfig:
self.with_secrets = rougailconfig["environment.with_secrets"]
else:
self.with_secrets = True
self.custom_separator = rougailconfig["environment.custom_separator"]
if not rougailconfig["main_namespace"]:
self.default_environment_name = rougailconfig["environment.default_environment_name"]
self.errors = []
self.warnings = []
def run(self):
values = self.parse()
return [{'source': 'environment',
'errors': self.errors,
'warnings': self.warnings,
'values': values,
'options': {'multi_separator': ',',
'needs_convert': True,
return [
{
"source": "environment variable",
"errors": self.errors,
"warnings": self.warnings,
"values": values,
"options": {
"multi_separator": ",",
"needs_convert": True,
"allow_secrets_variables": self.with_secrets,
},
}]
}
]
def parse(self):
variables = {}
self.prefixes = []
for option in self.config:
if not option.isoptiondescription() or option.group_type() != "namespace":
break
variables.update(get_rougail_environment(option.name()))
self.prefixes.append(option.name().upper() + ".")
else:
return variables
return get_rougail_environment(None, self.rougailconfig['environment.default_environment_name'])
return self.get_rougail_environment(0)
# no namespace then we filter the ROUGAIL_ environment variables
self.prefixes = [self.default_environment_name + "_"]
return self.get_rougail_environment(len(self.prefixes[0]))
def get_rougail_environment(namespace, environment_name=None):
def get_rougail_environment(self, len_env):
"""gets all the rougail environment variables and their values
:sample: {'VARINT': '5', 'VARNAME34': '58, 22', 'VARNAME2': 'tata',
'VARNAME1': 'titi', 'MYFAMILY.VARNAME3': 'spam'}
:returns: rougail environment variables as a key/value dict
"""
# then we filter the ROUGAIL_ environment variables
if namespace is None:
rougail_environment_var = environment_name.upper() + '_'
len_env = len(rougail_environment_var)
else:
rougail_environment_var = namespace.upper() + '.'
len_env = 0
return {envvar[len_env:].lower(): envval
for envvar, envval in os.environ.items()
if envvar.startswith(rougail_environment_var)}
return {
envvar[len_env:].lower(): envval
for envvar, envval in self.get_correct_envs()
}
def get_correct_envs(self):
for envvar, envval in os.environ.items():
if self.custom_separator:
envvar = envvar.replace(self.custom_separator, '.')
for prefix in self.prefixes:
if envvar.startswith(prefix):
yield envvar, envval
for prefix in self.prefixes:
if envvar.startswith(prefix):
yield envvar, envval

View file

@ -0,0 +1,27 @@
"""Internationalisation utilities
Silique (https://www.silique.fr)
Copyright (C) 2025
This program is free software: you can redistribute it and/or modify it
under the terms of the GNU Lesser General Public License as published by the
Free Software Foundation, either version 3 of the License, or (at your
option) any later version.
This program is distributed in the hope that it will be useful, but WITHOUT
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
details.
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/>.
"""
from gettext import translation
from pathlib import Path
t = translation(
"rougail_user_data_environment", str(Path(__file__).parent / "locale"), fallback=True
)
_ = t.gettext

View file

@ -0,0 +1 @@
ROUGAIL_UNKNOWN=1

View file

@ -0,0 +1,2 @@
ROUGAIL_FAMILY_DISABLED.VARIABLE1=test
ROUGAIL_FAMILY_DISABLED.VARIABLE2=test

View file

@ -0,0 +1 @@
ROUGAIL_VARIABLE_DISABLED=test

View file

@ -0,0 +1 @@
ROUGAIL_VARIABLE_INT=test

View file

@ -0,0 +1 @@
ROUGAIL_FAMILY_DISABLED_HIDDEN.VARIABLE1=test

View file

@ -0,0 +1 @@
ROUGAIL_SECRET=a

View file

@ -0,0 +1 @@
ROUGAIL_FAMILY=test

View file

@ -0,0 +1 @@
ROUGAIL_DYN_UNKNOWN.VARIABLE=test

View file

@ -0,0 +1,4 @@
ROUGAIL_LEADERSHIP.LEADER=test1,test2,test3
ROUGAIL_LEADERSHIP.FOLLOWER=test1,test2,test3
ROUGAIL_LEADERSHIP.FOLLOWER_DISABLED=test1,test2,test3
ROUGAIL_LEADERSHIP.FOLLOWER_DISABLED_AT_INDEX=test1,test2,test3

View file

@ -0,0 +1,2 @@
ROUGAIL_LEADERSHIP.LEADER=test
ROUGAIL_LEADERSHIP.UNKNWON=test

View file

@ -0,0 +1,2 @@
ROUGAIL_LEADERSHIP.LEADER=test
ROUGAIL_LEADERSHIP.FOLLOWER=test1,test2

View file

@ -0,0 +1,6 @@
{
"errors": [],
"warnings": [
"variable or family \"unknown\" does not exist, it will be ignored when loading from environment variable"
]
}

View file

@ -0,0 +1,7 @@
{
"errors": [],
"warnings": [
"family \"family_disabled\" is disabled, \"family_disabled.variable1\" will be ignored when loading from environment variable",
"family \"family_disabled\" is disabled, \"family_disabled.variable2\" will be ignored when loading from environment variable"
]
}

View file

@ -0,0 +1,6 @@
{
"errors": [],
"warnings": [
"variable \"variable_disabled\" is disabled, it will be ignored when loading from environment variable"
]
}

View file

@ -0,0 +1,6 @@
{
"errors": [],
"warnings": [
"the value \"test\" is an invalid integer for \"variable_int\", which is not an integer, it will be ignored when loading from environment variable"
]
}

View file

@ -0,0 +1,6 @@
{
"errors": [],
"warnings": [
"family \"family_disabled_hidden\" is disabled and hidden, \"family_disabled_hidden.variable1\" will be ignored when loading from environment variable"
]
}

View file

@ -0,0 +1,6 @@
{
"errors": [],
"warnings": [
"the value \"**********\" is an invalid password for \"secret\", at least 10 characters are required, it will be ignored when loading from environment variable"
]
}

View file

@ -0,0 +1,6 @@
{
"errors": [],
"warnings": [
"cannot set the value \"test\" to the family \"family\", it will be ignored when loading from environment variable"
]
}

View file

@ -0,0 +1,6 @@
{
"errors": [],
"warnings": [
"variable or family \"dyn_unknown\" does not exist, it will be ignored when loading from environment variable"
]
}

View file

@ -0,0 +1,9 @@
{
"errors": [],
"warnings": [
"variable \"leadership.follower_disabled\" at index \"0\" is disabled, it will be ignored when loading from environment variable",
"variable \"leadership.follower_disabled\" at index \"1\" is disabled, it will be ignored when loading from environment variable",
"variable \"leadership.follower_disabled\" at index \"2\" is disabled, it will be ignored when loading from environment variable",
"variable \"leadership.follower_disabled_at_index\" at index \"1\" is disabled, it will be ignored when loading from environment variable"
]
}

View file

@ -0,0 +1,6 @@
{
"errors": [],
"warnings": [
"variable or family \"leadership.unknwon\" does not exist, it will be ignored when loading from environment variable"
]
}

View file

@ -0,0 +1,6 @@
{
"errors": [],
"warnings": [
"index \"1\" is greater than the leadership length \"1\" for option \"leadership.follower\" in environment variable"
]
}

View file

@ -0,0 +1,68 @@
%YAML 1.2
---
version: 1.1
variable:
secret:
type: secret
params:
min_len: 10
variable_disabled:
disabled: true
variable_disabled_hidden:
disabled: true
hidden: true
variable_int:
type: number
family:
variable:
family_disabled:
disabled: true
variable1:
variable2:
family_disabled_hidden:
disabled: true
hidden: true
variable1:
variable2:
dyn_{{ identifier }}:
dynamic:
- var1
- var2
variable:
leadership:
type: leadership
leader:
follower:
follower_disabled:
disabled: true
follower_disabled_at_index:
disabled:
jinja: >-
{% if index == 1 %}
true
{% else %}
{% endif %}
params:
index:
type: index
...

View file

@ -1,2 +0,0 @@
ROUGAIL.VAR1="string1"
ROUGAIL.VAR2="string1,string2,string3"

View file

@ -1,2 +0,0 @@
ROUGAIL.VAR1="string1"
ROUGAIL.VAR2="string1,string2,string3"

View file

@ -1,2 +0,0 @@
ROUGAIL.VAR1="string1,string2,string3"
ROUGAIL.VAR2="string1,string2,string3"

View file

@ -1,2 +0,0 @@
ROUGAIL.VAR1="string1,string2,string3"
ROUGAIL.VAR2="string1,string2,string3"

View file

@ -1,2 +0,0 @@
ROUGAIL.VAR1="domain1.lan,domain2.lan"
ROUGAIL.VAR2="domain1.lan,domain2.lan"

View file

@ -1,2 +0,0 @@
ROUGAIL.VAR1="domain1.lan,domain2.lan"
ROUGAIL.VAR2="domain1.lan,domain2.lan"

View file

@ -1,3 +0,0 @@
{
"rougail.var1": "string1"
}

View file

@ -1,3 +0,0 @@
{
"rougail.var1": "string1"
}

View file

@ -1,6 +0,0 @@
ROUGAIL.VAR1="True"
ROUGAIL.VAR2="True"
ROUGAIL.VAR3="True"
ROUGAIL.VAR4="True"
ROUGAIL.VAR5="True"
ROUGAIL.VAR6="True"

View file

@ -1,6 +0,0 @@
ROUGAIL.VAR1="True"
ROUGAIL.VAR2="True"
ROUGAIL.VAR3="True"
ROUGAIL.VAR4="True"
ROUGAIL.VAR5="True"
ROUGAIL.VAR6="True"

View file

@ -1,6 +0,0 @@
{
"errors": [
"\"1\" is an invalid choice for \"rougail.var6 (the sixth variable)\", only \"1\", \"2\" and \"3\" are allowed"
],
"warnings": []
}

View file

@ -1,6 +0,0 @@
ROUGAIL.VAR1="a"
ROUGAIL.VAR2="a"
ROUGAIL.VAR3="a"
ROUGAIL.VAR4=""
ROUGAIL.VAR5="a"
ROUGAIL.VAR6="1"

View file

@ -1,6 +0,0 @@
ROUGAIL.VAR1="a"
ROUGAIL.VAR2="a"
ROUGAIL.VAR3="a"
ROUGAIL.VAR4=""
ROUGAIL.VAR5="a"
ROUGAIL.VAR6="1"

View file

@ -1,2 +0,0 @@
ROUGAIL.VAR1="a"
ROUGAIL.VAR2="a"

View file

@ -1,2 +0,0 @@
ROUGAIL.VAR1="string1,string2,string3"
ROUGAIL.VAR2="string1"

View file

@ -1,2 +0,0 @@
ROUGAIL.VAR1="string1,string2,string3"
ROUGAIL.VAR2="string1"

View file

@ -1,2 +0,0 @@
ROUGAIL.CUSTOM1="string1"
ROUGAIL.CUSTOM2="string1"

View file

@ -1,2 +0,0 @@
ROUGAIL.CUSTOM1="string1"
ROUGAIL.CUSTOM2="string1"

View file

@ -1,6 +0,0 @@
ROUGAIL.VAR1="1.1"
ROUGAIL.VAR2="1.1"
ROUGAIL.VAR3="1.1"
ROUGAIL.VAR4="1.1"
ROUGAIL.VAR5="1.1"
ROUGAIL.VAR6="1.1"

View file

@ -1,6 +0,0 @@
ROUGAIL.VAR1="1.1"
ROUGAIL.VAR2="1.1"
ROUGAIL.VAR3="1.1"
ROUGAIL.VAR4="1.1"
ROUGAIL.VAR5="1.1"
ROUGAIL.VAR6="1.1"

View file

@ -1,6 +0,0 @@
ROUGAIL.VAR1="1"
ROUGAIL.VAR2="1"
ROUGAIL.VAR3="1"
ROUGAIL.VAR4="1"
ROUGAIL.VAR5="1"
ROUGAIL.VAR6="1"

View file

@ -1,6 +0,0 @@
ROUGAIL.VAR1="1"
ROUGAIL.VAR2="1"
ROUGAIL.VAR3="1"
ROUGAIL.VAR4="1"
ROUGAIL.VAR5="1"
ROUGAIL.VAR6="1"

View file

@ -1,3 +0,0 @@
ROUGAIL.VARIABLE1="80"
ROUGAIL.VARIABLE2="80"
ROUGAIL.VARIABLE3="80"

View file

@ -1,3 +0,0 @@
ROUGAIL.VARIABLE1="80"
ROUGAIL.VARIABLE2="80"
ROUGAIL.VARIABLE3="80"

View file

@ -1,6 +0,0 @@
ROUGAIL.VAR1="string1"
ROUGAIL.VAR2="string1"
ROUGAIL.VAR3="string1"
ROUGAIL.VAR4="string1"
ROUGAIL.VAR5="string1"
ROUGAIL.VAR6="string1"

View file

@ -1,6 +0,0 @@
ROUGAIL.VAR1="string1"
ROUGAIL.VAR2="string1"
ROUGAIL.VAR3="string1"
ROUGAIL.VAR4="string1"
ROUGAIL.VAR5="string1"
ROUGAIL.VAR6="string1"

View file

@ -1,3 +0,0 @@
ROUGAIL.VAR1="string1"
ROUGAIL.VAR2="string1"
ROUGAIL.VAR3="string1"

View file

@ -1,8 +0,0 @@
{
"rougail.var1": "string1",
"rougail.var2": "string1",
"rougail.var3": "string1",
"rougail.var4": "string1",
"rougail.var5": "string1",
"rougail.var6": "string1"
}

View file

@ -1,8 +0,0 @@
{
"rougail.var1": "string1",
"rougail.var2": "string1",
"rougail.var3": "string1",
"rougail.var4": "value",
"rougail.var5": "value",
"rougail.var6": "value"
}

View file

@ -1,2 +0,0 @@
ROUGAIL.VAR1="string1"
ROUGAIL.VAR2="string1"

View file

@ -1,2 +0,0 @@
ROUGAIL.VAR1="string1"
ROUGAIL.VAR2="string1"

View file

@ -1,2 +0,0 @@
ROUGAIL.VAR1="string1"
ROUGAIL.VAR2="string1"

View file

@ -1,6 +0,0 @@
ROUGAIL.VAR1="test"
ROUGAIL.VAR2="test"
ROUGAIL.VAR3="test1"
ROUGAIL.VAR4=""
ROUGAIL.VAR5="False"
ROUGAIL.VAR6="test1,test2"

View file

@ -1,6 +0,0 @@
ROUGAIL.VAR1="test"
ROUGAIL.VAR2="test"
ROUGAIL.VAR3="test1"
ROUGAIL.VAR4=""
ROUGAIL.VAR5="False"
ROUGAIL.VAR6="test1,test2"

View file

@ -1,3 +0,0 @@
ROUGAIL.VAR1="test"
ROUGAIL.VAR3="test1"
ROUGAIL.VAR6="test1,test2"

View file

@ -1,2 +0,0 @@
ROUGAIL.VARIABLE1="val1,val2"
ROUGAIL.VARIABLE2="val1,val2"

View file

@ -1,2 +0,0 @@
ROUGAIL.VARIABLE1="val1,val2"
ROUGAIL.VARIABLE2="val1,val2"

View file

@ -1,3 +0,0 @@
ROUGAIL.SOURCE_VARIABLE_1="string1"
ROUGAIL.SOURCE_VARIABLE_2="string1"
ROUGAIL.MY_VARIABLE="string1"

View file

@ -1,3 +0,0 @@
ROUGAIL.SOURCE_VARIABLE_1="string1"
ROUGAIL.SOURCE_VARIABLE_2="string1"
ROUGAIL.MY_VARIABLE="string1"

View file

@ -1,2 +0,0 @@
ROUGAIL.VAR1="string1"
ROUGAIL.VAR2="string1"

View file

@ -1,2 +0,0 @@
ROUGAIL.VAR1="string1"
ROUGAIL.VAR2="string1"

View file

@ -1,2 +0,0 @@
ROUGAIL.VAR1="string1"
ROUGAIL.VAR2="string1"

View file

@ -1,2 +0,0 @@
ROUGAIL.MY_VARIABLE="string1"
ROUGAIL.MY_CALCULATED_VARIABLE="string1,string2,string3"

View file

@ -1,2 +0,0 @@
ROUGAIL.MY_VARIABLE="string1"
ROUGAIL.MY_CALCULATED_VARIABLE="string1,string2,string3"

View file

@ -1,2 +0,0 @@
ROUGAIL.MY_VARIABLE="string1"
ROUGAIL.MY_CALCULATED_VARIABLE="string1,string2,string3"

View file

@ -1,2 +0,0 @@
ROUGAIL.MY_VARIABLE="string1"
ROUGAIL.MY_CALCULATED_VARIABLE="string1,string2,string3"

View file

@ -1,2 +0,0 @@
ROUGAIL.MY_VARIABLE="string1,string2,string3"
ROUGAIL.MY_CALCULATED_VARIABLE="string1,string2,string3"

View file

@ -1,2 +0,0 @@
ROUGAIL.MY_VARIABLE="string1,string2,string3"
ROUGAIL.MY_CALCULATED_VARIABLE="string1,string2,string3"

View file

@ -1,2 +0,0 @@
ROUGAIL.VAR1="string1"
ROUGAIL.VAR2="string1"

View file

@ -1,2 +0,0 @@
ROUGAIL.VAR1="string1"
ROUGAIL.VAR2="string1"

View file

@ -1,2 +0,0 @@
ROUGAIL.VAR1="string1"
ROUGAIL.VAR2="string1"

View file

@ -1,2 +0,0 @@
ROUGAIL.VAR1="string1"
ROUGAIL.VAR2="string1"

View file

@ -1,2 +0,0 @@
ROUGAIL.VAR1="string1"
ROUGAIL.VAR2="string1"

View file

@ -1,3 +0,0 @@
{
"rougail.variable": "rougail"
}

View file

@ -1,3 +0,0 @@
{
"rougail.variable": "value"
}

View file

@ -1,8 +0,0 @@
ROUGAIL.VAR1="true"
ROUGAIL.VAR2="true"
ROUGAIL.VAR3="true"
ROUGAIL.VAR4="true"
ROUGAIL.VAR5="true"
ROUGAIL.VAR6="true"
ROUGAIL.VAR7="true"
ROUGAIL.VAR8="true"

View file

@ -1,8 +0,0 @@
ROUGAIL.VAR1="true"
ROUGAIL.VAR2="true"
ROUGAIL.VAR3="true"
ROUGAIL.VAR4="true"
ROUGAIL.VAR5="true"
ROUGAIL.VAR6="true"
ROUGAIL.VAR7="true"
ROUGAIL.VAR8="true"

View file

@ -1,2 +0,0 @@
ROUGAIL.CUSTOM1="string1,string2,string3"
ROUGAIL.CUSTOM2="string1,string2,string3"

View file

@ -1,2 +0,0 @@
ROUGAIL.CUSTOM1="string1,string2,string3"
ROUGAIL.CUSTOM2="string1,string2,string3"

View file

@ -1,8 +0,0 @@
ROUGAIL.VAR1="1.1,2.2,3.3"
ROUGAIL.VAR2="1.1,2.2,3.3"
ROUGAIL.VAR3="1.1,2.2,3.3"
ROUGAIL.VAR4="1.1,2.2,3.3"
ROUGAIL.VAR5="1.1,2.2,3.3"
ROUGAIL.VAR6="1.1,2.2,3.3"
ROUGAIL.VAR7="1.1,2.2,3.3"
ROUGAIL.VAR8="1.1,2.2,3.3"

View file

@ -1,8 +0,0 @@
ROUGAIL.VAR1="1.1,2.2,3.3"
ROUGAIL.VAR2="1.1,2.2,3.3"
ROUGAIL.VAR3="1.1,2.2,3.3"
ROUGAIL.VAR4="1.1,2.2,3.3"
ROUGAIL.VAR5="1.1,2.2,3.3"
ROUGAIL.VAR6="1.1,2.2,3.3"
ROUGAIL.VAR7="1.1,2.2,3.3"
ROUGAIL.VAR8="1.1,2.2,3.3"

View file

@ -1,8 +0,0 @@
ROUGAIL.VAR1="1,2,3"
ROUGAIL.VAR2="1,2,3"
ROUGAIL.VAR3="1,2,3"
ROUGAIL.VAR4="1,2,3"
ROUGAIL.VAR5="1,2,3"
ROUGAIL.VAR6="1,2,3"
ROUGAIL.VAR7="1,2,3"
ROUGAIL.VAR8="1,2,3"

View file

@ -1,8 +0,0 @@
ROUGAIL.VAR1="1,2,3"
ROUGAIL.VAR2="1,2,3"
ROUGAIL.VAR3="1,2,3"
ROUGAIL.VAR4="1,2,3"
ROUGAIL.VAR5="1,2,3"
ROUGAIL.VAR6="1,2,3"
ROUGAIL.VAR7="1,2,3"
ROUGAIL.VAR8="1,2,3"

View file

@ -1,8 +0,0 @@
ROUGAIL.VAR1="string1,string2,string3"
ROUGAIL.VAR2="string1,string2,string3"
ROUGAIL.VAR3="string1"
ROUGAIL.VAR4="string1,string2,string3"
ROUGAIL.VAR5="string1,string2,string3"
ROUGAIL.VAR6="string1,string2,string3"
ROUGAIL.VAR7="string1,string2,string3"
ROUGAIL.VAR8="string1,string2,string3"

View file

@ -1,8 +0,0 @@
ROUGAIL.VAR1="string1,string2,string3"
ROUGAIL.VAR2="string1,string2,string3"
ROUGAIL.VAR3="string1"
ROUGAIL.VAR4="string1,string2,string3"
ROUGAIL.VAR5="string1,string2,string3"
ROUGAIL.VAR6="string1,string2,string3"
ROUGAIL.VAR7="string1,string2,string3"
ROUGAIL.VAR8="string1,string2,string3"

View file

@ -1,3 +0,0 @@
ROUGAIL.VAR1="string1,string2,string3"
ROUGAIL.VAR2="string1,string2,string3"
ROUGAIL.VAR3="string1"

Some files were not shown because too many files have changed in this diff Show more