Compare commits

...

22 commits

Author SHA1 Message Date
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
5cad82804c bump: version 0.1.0a0 → 0.1.0a1 2024-11-27 16:40:26 +01:00
a5fc17af28 fix: NAMESPACE. instead of NAMESPACE_ 2024-11-27 16:39:46 +01:00
3347 changed files with 9777 additions and 1236 deletions
CHANGELOG.mdpyproject.toml
src/rougail/user_data_environment
tests
errors
results
00_4load_subfolder/makedict
00_6choice/errors
00_9extra/makedict
00_9extra_calculation/makedict
01_8calculation_information_multi/makedict
04_1auto_save_and_hidden/errors
04_1default_calculation_hidden/errors
04_1default_calculation_hidden_2/errors
04_5disabled_calculation/file
04_5disabled_calculation_optional/errors
04_5disabled_calculation_variable/errors
04_5disabled_calculation_variable2/errors
04_5disabled_calculation_variable3/errors
04_5disabled_calculation_variable4/errors
04_5hidden_calculation2/errors
16_2family_redefine_calculation/errors
16_2family_redefine_disabled/errors
16_5exists_redefine
16_5redefine_default_calculation/file
16_5redefine_hidden
17_5redefine_leadership/errors
20_0family_underscore/errors
24_0family_hidden_condition_boolean/file
24_0family_hidden_condition_variable_sub_family/errors
24_0family_hidden_condition_with_variable
24_family_disabled_var_hidden/errors
40_2leadership_calculation_index/file
40_2leadership_calculation_param_index/file
40_2leadership_leader_calculation/file
40_8calculation_boolean_return_none/file
40_8calculation_integer/file
44_0leadership_hidden/errors
44_0leadership_leader_hidden/errors
44_1leadership_append_hidden_follower/errors
44_4disabled_calcultion_follower/file
44_6leadership_follower_disabled_calculation/errors
44_9calculated_default_leadership_leader/file
60_0family_dynamic_1_0
60_0family_dynamic_1_0_type
60_0family_dynamic_1_1
60_0family_dynamic_jinja_number/file
60_0family_dynamic_variable_empty/file

View file

@ -1,3 +1,64 @@
## 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
- NAMESPACE. instead of NAMESPACE_
## 0.1.0a0 (2024-11-25) ## 0.1.0a0 (2024-11-25)
### Feat ### Feat

View file

@ -4,7 +4,7 @@ requires = ["flit_core >=3.8.0,<4"]
[project] [project]
name = "rougail.user_data_environment" name = "rougail.user_data_environment"
version = "0.1.0a0" version = "0.1.0a9"
authors = [{name = "Emmanuel Garette", email = "gnunux@gnunux.info"}] authors = [{name = "Emmanuel Garette", email = "gnunux@gnunux.info"}]
readme = "README.md" readme = "README.md"
description = "Rougail user_data environment" description = "Rougail user_data environment"
@ -18,6 +18,8 @@ classifiers = [
"Programming Language :: Python :: 3.10", "Programming Language :: Python :: 3.10",
"Programming Language :: Python :: 3.11", "Programming Language :: Python :: 3.11",
"Programming Language :: Python :: 3.12", "Programming Language :: Python :: 3.12",
"Programming Language :: Python :: 3.13",
"Programming Language :: Python :: 3.14",
"Programming Language :: Python :: 3", "Programming Language :: Python :: 3",
"Operating System :: OS Independent", "Operating System :: OS Independent",
"Natural Language :: English", "Natural Language :: English",
@ -36,5 +38,9 @@ name = "cz_conventional_commits"
tag_format = "$version" tag_format = "$version"
version_scheme = "pep440" version_scheme = "pep440"
version_provider = "pep621" version_provider = "pep621"
version_files = [
"src/rougail/user_data_environment/__version__.py",
"pyproject.toml:version"
]
update_changelog_on_bump = true update_changelog_on_bump = true
changelog_merge_prerelease = true changelog_merge_prerelease = true

View file

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

View file

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

View file

@ -1,6 +1,6 @@
""" """
Silique (https://www.silique.fr) Silique (https://www.silique.fr)
Copyright (C) 2024 Copyright (C) 2024-2025
distribued with GPL-2 or later license 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 along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
""" """
from rougail.error import DictConsistencyError from rougail.error import DictConsistencyError
from rougail.annotator.variable import Walk from rougail.annotator.variable import Walk
from .i18n import _ from .i18n import _
@ -42,11 +43,19 @@ class Annotator(Walk):
def check_family(self): def check_family(self):
for family in self.get_families(): for family in self.get_families():
if family.name != family.name.lower(): 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') msg = _(
raise DictConsistencyError(msg.format(family.name), 200, family.xmlfiles) '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): def check_variable(self):
for variable in self.get_variables(): for variable in self.get_variables():
if variable.name != variable.name.lower(): 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') msg = _(
raise DictConsistencyError(msg.format(variable.name), 201, variable.xmlfiles) '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 Config file for Rougail-user-data-environment
Silique (https://www.silique.fr) Silique (https://www.silique.fr)
Copyright (C) 2024 Copyright (C) 2024-2025
distribued with GPL-2 or later license distribued with GPL-2 or later license
@ -22,31 +22,31 @@ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
""" """
def get_rougail_config(*, def get_rougail_config(
backward_compatibility=True, *,
) -> dict: backward_compatibility=True,
) -> dict:
options = """ options = """
environment: environment:
description: Define values from the environment description: Define values from the environment
disabled: disabled:
jinja: | jinja: |
{% if 'environment' not in step.user_data %} {% if step.user_data is propertyerror or 'environment' not in step.user_data %}
disabled disabled
{% endif %} {% endif %}
default_environment_name: default_environment_name:
description: Name of the default environment prefix description: Name of the default environment prefix
default: rougail default: rougail
disabled: disabled:
jinja: | variable: main_namespace
{% if main_namespace %} when_not: null
use namespaces
{% endif %}
""" """
return {'name': 'environment', return {
'process': 'user data', "name": "environment",
'options': options, "process": "user data",
'level': 50, "options": options,
} "level": 50,
}
__all__ = ('get_rougail_config',) __all__ = ("get_rougail_config",)

View file

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

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 invalid 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 invalid 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,3 +0,0 @@
{
"rougail.var1": "string1"
}

View file

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

View file

@ -1,6 +0,0 @@
{
"errors": [
"\"1\" est une valeur invalide pour l'option \"rougail.var6 (the sixth variable)\" de type choice, seul \"1\", \"2\" et \"3\" sont autoris\u00e9es"
],
"warnings": []
}

View file

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

View file

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

View file

@ -1,5 +0,0 @@
{
"rougail.variable": [
"[]"
]
}

View file

@ -1,6 +0,0 @@
{
"errors": [
"ne peut acc\u00e9der \u00e0 l'option \"rougail.var\" (autosave variable) \u00e0 cause de la propri\u00e9t\u00e9 \"hidden\""
],
"warnings": []
}

View file

@ -1,6 +0,0 @@
{
"errors": [
"ne peut acc\u00e9der \u00e0 l'option \"rougail.var2\" (a second variable) \u00e0 cause de la propri\u00e9t\u00e9 \"disabled\""
],
"warnings": []
}

View file

@ -1,6 +0,0 @@
{
"errors": [
"ne peut acc\u00e9der \u00e0 l'option \"rougail.var2\" (a second variable) \u00e0 cause de la propri\u00e9t\u00e9 \"disabled\""
],
"warnings": []
}

View file

@ -1,3 +0,0 @@
ROUGAIL_CONDITION="string1"
ROUGAIL_VARIABLE1="string1"
ROUGAIL_VARIABLE2="string1"

View file

@ -1,3 +0,0 @@
ROUGAIL_CONDITION="string1"
ROUGAIL_VARIABLE1="string1"
ROUGAIL_VARIABLE2="string1"

View file

@ -1,2 +0,0 @@
ROUGAIL_VARIABLE1="string1"
ROUGAIL_VARIABLE2="string1"

View file

@ -1,6 +0,0 @@
{
"errors": [
"ne peut acc\u00e9der \u00e0 l'option \"rougail.var1\" (a first variable) \u00e0 cause de la propri\u00e9t\u00e9 \"hidden\" (unknown is undefined)"
],
"warnings": []
}

View file

@ -1,6 +0,0 @@
{
"errors": [
"ne peut acc\u00e9der \u00e0 l'option \"rougail.variable\" (a variable) \u00e0 cause de la propri\u00e9t\u00e9 \"disabled\""
],
"warnings": []
}

View file

@ -1,6 +0,0 @@
{
"errors": [
"ne peut acc\u00e9der \u00e0 l'option \"rougail.variable\" (a variable) \u00e0 cause de la propri\u00e9t\u00e9 \"disabled\""
],
"warnings": []
}

View file

@ -1,6 +0,0 @@
{
"errors": [
"ne peut acc\u00e9der \u00e0 l'option \"rougail.variable\" (a variable) \u00e0 cause de la propri\u00e9t\u00e9 \"disabled\""
],
"warnings": []
}

View file

@ -1,6 +0,0 @@
{
"errors": [
"ne peut acc\u00e9der \u00e0 l'option \"rougail.variable\" (a variable) \u00e0 cause de la propri\u00e9t\u00e9 \"disabled\""
],
"warnings": []
}

View file

@ -1,6 +0,0 @@
{
"errors": [
"ne peut acc\u00e9der \u00e0 l'option \"rougail.variable\" (a variable) \u00e0 cause de la propri\u00e9t\u00e9 \"disabled\""
],
"warnings": []
}

View file

@ -1,7 +0,0 @@
{
"errors": [
"ne peut acc\u00e9der \u00e0 l'option \"rougail.var1\" (a first variable) \u00e0 cause de la propri\u00e9t\u00e9 \"hidden\" (condition is yes)",
"ne peut acc\u00e9der \u00e0 l'option \"rougail.var2\" (a second variable) \u00e0 cause de la propri\u00e9t\u00e9 \"hidden\" (condition is yes)"
],
"warnings": []
}

View file

@ -1,6 +0,0 @@
{
"errors": [
"ne peut acc\u00e9der \u00e0 l'optiondescription \"rougail.family\" \u00e0 cause de la propri\u00e9t\u00e9 \"disabled\" (true)"
],
"warnings": []
}

View file

@ -1,6 +0,0 @@
{
"errors": [
"ne peut acc\u00e9der \u00e0 l'optiondescription \"rougail.family\" \u00e0 cause de la propri\u00e9t\u00e9 \"disabled\" (true)"
],
"warnings": []
}

View file

@ -1,6 +0,0 @@
{
"errors": [
"ne peut acc\u00e9der \u00e0 l'optiondescription \"rougail.family\" \u00e0 cause de la propri\u00e9t\u00e9 \"disabled\""
],
"warnings": []
}

View file

@ -1,6 +0,0 @@
{
"errors": [
"ne peut acc\u00e9der \u00e0 l'optiondescription \"rougail.family\" \u00e0 cause de la propri\u00e9t\u00e9 \"disabled\""
],
"warnings": []
}

View file

@ -1,6 +0,0 @@
{
"errors": [
"ne peut acc\u00e9der \u00e0 l'option \"rougail.var1\" (a first variable) \u00e0 cause de la propri\u00e9t\u00e9 \"hidden\""
],
"warnings": []
}

View file

@ -1 +0,0 @@
ROUGAIL_VAR1="string1"

View file

@ -1 +0,0 @@
ROUGAIL_VAR1="string1"

View file

@ -1 +0,0 @@
ROUGAIL_VARIABLE="string1"

View file

@ -1 +0,0 @@
ROUGAIL_VARIABLE="string1"

View file

@ -1,6 +0,0 @@
{
"errors": [
"ne peut acc\u00e9der \u00e0 l'option \"rougail.variable\" (a variable) \u00e0 cause de la propri\u00e9t\u00e9 \"hidden\""
],
"warnings": []
}

View file

@ -1 +0,0 @@
ROUGAIL_VARIABLE="string1"

View file

@ -1 +0,0 @@
ROUGAIL_VARIABLE="string1"

View file

@ -1,6 +0,0 @@
{
"errors": [
"ne peut acc\u00e9der \u00e0 l'optiondescription \"rougail.leader\" \u00e0 cause de la propri\u00e9t\u00e9 \"hidden\""
],
"warnings": []
}

View file

@ -1,11 +0,0 @@
{
"errors": [
"ne peut acc\u00e9der \u00e0 l'optiondescription \"rougail.my_family\" (This is a great family) \u00e0 cause des propri\u00e9t\u00e9s \"disabled\" et \"hidden\"",
"ne peut acc\u00e9der \u00e0 l'optiondescription \"rougail.my_family\" (This is a great family) \u00e0 cause des propri\u00e9t\u00e9s \"disabled\" et \"hidden\"",
"ne peut acc\u00e9der \u00e0 l'optiondescription \"rougail.my_family\" (This is a great family) \u00e0 cause des propri\u00e9t\u00e9s \"disabled\" et \"hidden\"",
"ne peut acc\u00e9der \u00e0 l'optiondescription \"rougail.my_family\" (This is a great family) \u00e0 cause des propri\u00e9t\u00e9s \"disabled\" et \"hidden\"",
"ne peut acc\u00e9der \u00e0 l'optiondescription \"rougail.my_family\" (This is a great family) \u00e0 cause des propri\u00e9t\u00e9s \"disabled\" et \"hidden\"",
"ne peut acc\u00e9der \u00e0 l'optiondescription \"rougail.my_family\" (This is a great family) \u00e0 cause des propri\u00e9t\u00e9s \"disabled\" et \"hidden\""
],
"warnings": []
}

View file

@ -1,2 +0,0 @@
ROUGAIL_CONDITION="True"
ROUGAIL_FAMILY.VARIABLE="string1"

View file

@ -1,2 +0,0 @@
ROUGAIL_CONDITION="True"
ROUGAIL_FAMILY.VARIABLE="string1"

View file

@ -1,6 +0,0 @@
{
"errors": [
"ne peut acc\u00e9der \u00e0 l'optiondescription \"rougail.family\" (possibly hidden family) \u00e0 cause de la propri\u00e9t\u00e9 \"hidden\""
],
"warnings": []
}

View file

@ -1,6 +0,0 @@
{
"errors": [
"ne peut acc\u00e9der \u00e0 l'option \"rougail.family.variable\" (a variable) \u00e0 cause de la propri\u00e9t\u00e9 \"hidden\" (condition2 is true)"
],
"warnings": []
}

View file

@ -1,3 +0,0 @@
ROUGAIL_CONDITION1="True"
ROUGAIL_CONDITION2="True"
ROUGAIL_FAMILY.VARIABLE="string1"

View file

@ -1,3 +0,0 @@
ROUGAIL_CONDITION1="True"
ROUGAIL_CONDITION2="True"
ROUGAIL_FAMILY.VARIABLE="string1"

View file

@ -1,7 +0,0 @@
{
"errors": [
"ne peut acc\u00e9der \u00e0 l'optiondescription \"rougail.family\" \u00e0 cause de la propri\u00e9t\u00e9 \"disabled\"",
"ne peut acc\u00e9der \u00e0 l'optiondescription \"rougail.family\" \u00e0 cause de la propri\u00e9t\u00e9 \"disabled\""
],
"warnings": []
}

View file

@ -1,6 +0,0 @@
{
"errors": [
"ne peut acc\u00e9der \u00e0 l'optiondescription \"rougail.family\" \u00e0 cause de la propri\u00e9t\u00e9 \"disabled\""
],
"warnings": []
}

View file

@ -1,2 +0,0 @@
ROUGAIL_LEADER.LEADER="string1,string2,string3"
ROUGAIL_LEADER.FOLLOWER1="1,2,3"

View file

@ -1,2 +0,0 @@
ROUGAIL_LEADER.LEADER="string1,string2,string3"
ROUGAIL_LEADER.FOLLOWER1="1,2,3"

View file

@ -1,2 +0,0 @@
ROUGAIL_LEADER.LEADER="string1,string2,string3"
ROUGAIL_LEADER.FOLLOWER1="1,2,3"

View file

@ -1,2 +0,0 @@
ROUGAIL_LEADER.LEADER="string1,string2,string3"
ROUGAIL_LEADER.FOLLOWER1="1,2,3"

View file

@ -1,2 +0,0 @@
ROUGAIL_LEADER.FOLLOWER1="string1,string2"
ROUGAIL_LEADER.FOLLOWER2="string1,string2"

View file

@ -1,2 +0,0 @@
ROUGAIL_VAR1="string1"
ROUGAIL_VAR2="True"

View file

@ -1,2 +0,0 @@
ROUGAIL_VAR1="string1"
ROUGAIL_VAR2="True"

View file

@ -1 +0,0 @@
ROUGAIL_VAR2="True"

View file

@ -1,3 +0,0 @@
ROUGAIL_BOOL="True"
ROUGAIL_INT1="1"
ROUGAIL_INT2="1"

View file

@ -1,3 +0,0 @@
ROUGAIL_BOOL="True"
ROUGAIL_INT1="1"
ROUGAIL_INT2="1"

View file

@ -1,6 +0,0 @@
{
"errors": [
"ne peut acc\u00e9der \u00e0 l'optiondescription \"rougail.leader\" (a leadership) \u00e0 cause de la propri\u00e9t\u00e9 \"hidden\""
],
"warnings": []
}

View file

@ -1,6 +0,0 @@
{
"errors": [
"ne peut acc\u00e9der \u00e0 l'optiondescription \"rougail.leader\" (a leadership) \u00e0 cause de la propri\u00e9t\u00e9 \"hidden\""
],
"warnings": []
}

View file

@ -1,6 +0,0 @@
{
"errors": [
"ne peut acc\u00e9der \u00e0 l'optiondescription \"rougail.leader\" (a leadership) \u00e0 cause de la propri\u00e9t\u00e9 \"hidden\""
],
"warnings": []
}

View file

@ -1,3 +0,0 @@
ROUGAIL_CONDITION="True"
ROUGAIL_LEADER.LEADER="string1,string2,string3"
ROUGAIL_LEADER.FOLLOWER="string1,string2,string3"

View file

@ -1 +0,0 @@
ROUGAIL_LEADER.FOLLOWER="string1"

View file

@ -1,6 +0,0 @@
{
"errors": [
"ne peut acc\u00e9der \u00e0 l'option \"rougail.leader.follower\" (a follower) \u00e0 cause de la propri\u00e9t\u00e9 \"disabled\" (disabled)"
],
"warnings": []
}

View file

@ -1,2 +0,0 @@
ROUGAIL_LEADER.LEADER="string1,string2,string3"
ROUGAIL_LEADER.FOLLOWER="string1,string2,string3"

View file

@ -1,4 +0,0 @@
ROUGAIL_VAR="string1,string2,string3"
ROUGAIL_DYNSTRING1.VARDYN="string1"
ROUGAIL_DYNSTRING2.VARDYN="string1"
ROUGAIL_DYNSTRING3.VARDYN="string1"

View file

@ -1,3 +0,0 @@
ROUGAIL_DYNSTRING1.VARDYN="string1"
ROUGAIL_DYNSTRING2.VARDYN="string1"
ROUGAIL_DYNSTRING3.VARDYN="string1"

View file

@ -1,10 +0,0 @@
{
"rougail.var": [
"string1",
"string2",
"string3"
],
"rougail.dynstring1.vardyn": "string1",
"rougail.dynstring2.vardyn": "string1",
"rougail.dynstring3.vardyn": "string1"
}

View file

@ -1,4 +0,0 @@
ROUGAIL_VAR="string1,string2,string3"
ROUGAIL_DYNSTRING1.VARDYN="string1"
ROUGAIL_DYNSTRING2.VARDYN="string1"
ROUGAIL_DYNSTRING3.VARDYN="string1"

View file

@ -1,3 +0,0 @@
ROUGAIL_DYNSTRING1.VARDYN="string1"
ROUGAIL_DYNSTRING2.VARDYN="string1"
ROUGAIL_DYNSTRING3.VARDYN="string1"

View file

@ -1,10 +0,0 @@
{
"rougail.var": [
"string1",
"string2",
"string3"
],
"rougail.dynstring1.vardyn": "string1",
"rougail.dynstring2.vardyn": "string1",
"rougail.dynstring3.vardyn": "string1"
}

View file

@ -1,4 +0,0 @@
ROUGAIL_VAR="string1,string2,string3"
ROUGAIL_DYNSTRING1.VARDYN="string1"
ROUGAIL_DYNSTRING2.VARDYN="string1"
ROUGAIL_DYNSTRING3.VARDYN="string1"

View file

@ -1,3 +0,0 @@
ROUGAIL_DYNSTRING1.VARDYN="string1"
ROUGAIL_DYNSTRING2.VARDYN="string1"
ROUGAIL_DYNSTRING3.VARDYN="string1"

View file

@ -1,10 +0,0 @@
{
"rougail.var": [
"string1",
"string2",
"string3"
],
"rougail.dynstring1.vardyn": "string1",
"rougail.dynstring2.vardyn": "string1",
"rougail.dynstring3.vardyn": "string1"
}

View file

@ -1,5 +0,0 @@
ROUGAIL_VAR="1,2,3"
ROUGAIL_DYN1.VAR="string1"
ROUGAIL_DYN2.VAR="string1"
ROUGAIL_DYN3.VAR="string1"
ROUGAIL_VAR2="string1"

View file

@ -1,4 +0,0 @@
ROUGAIL_DYN1.VAR="string1"
ROUGAIL_DYN2.VAR="string1"
ROUGAIL_DYN3.VAR="string1"
ROUGAIL_VAR2="string1"

View file

@ -1,4 +0,0 @@
ROUGAIL_VAR="string1,string2,string3"
ROUGAIL_DYNSTRING1.VAR="string1"
ROUGAIL_DYNSTRING2.VAR="string1"
ROUGAIL_DYNSTRING3.VAR="string1"

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