Compare commits

..

4 commits

152 changed files with 502 additions and 28 deletions

View file

@ -1,3 +1,11 @@
## 0.1.0a12 (2025-10-10)
### Fix
- update test
- translation + tests
- tests for formatter
## 0.1.0a11 (2025-09-29)
### Feat

View file

@ -4,7 +4,7 @@ requires = ["flit_core >=3.8.0,<4"]
[project]
name = "rougail.user_data_environment"
version = "0.1.0a11"
version = "0.1.0a12"
authors = [{name = "Emmanuel Garette", email = "gnunux@gnunux.info"}]
readme = "README.md"
description = "Rougail user_data environment"
@ -13,9 +13,6 @@ 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",

View file

@ -1 +1 @@
__version__ = "0.1.0a11"
__version__ = "0.1.0a12"

View file

@ -22,24 +22,32 @@ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
"""
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 step.user_data is propertyerror or '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
description: {_("Name of the default environment prefix")}
default: rougail
disabled:
variable: main_namespace
variable: __.main_namespace
when_not: null
with_secrets:
description: {_("Environnement variables may contain secrets")}
default: true
"""
return {
"name": "environment",

View file

@ -45,6 +45,10 @@ class RougailUserDataEnvironment:
self.rougailconfig = rougailconfig
if "environment" not in user_data:
raise ExtentionError("environment is not set in step.user_data")
if "environment.with_secrets" in self.rougailconfig:
self.with_secrets = self.rougailconfig["environment.with_secrets"]
else:
self.with_secrets = True
self.errors = []
self.warnings = []
@ -59,6 +63,7 @@ class RougailUserDataEnvironment:
"options": {
"multi_separator": ",",
"needs_convert": True,
"allow_secrets_variables": self.with_secrets,
},
}
]

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

@ -1,6 +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"
"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

@ -1,6 +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"
"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

@ -4,3 +4,5 @@ ROUGAIL_VAR3="string1"
ROUGAIL_VAR4="string1"
ROUGAIL_VAR5="string1"
ROUGAIL_VAR6="string1"
ROUGAIL_VAR7="string1"
ROUGAIL_VAR8="string1"

View file

@ -4,3 +4,5 @@ ROUGAIL_VAR3="string1"
ROUGAIL_VAR4="string1"
ROUGAIL_VAR5="string1"
ROUGAIL_VAR6="string1"
ROUGAIL_VAR7="string1"
ROUGAIL_VAR8="string1"

View file

@ -4,5 +4,7 @@
"var3": "string1",
"var4": "string1",
"var5": "string1",
"var6": "string1"
"var6": "string1",
"var7": "string1",
"var8": "string1"
}

View file

@ -4,5 +4,7 @@
"var3": "string1",
"var4": "value",
"var5": "value",
"var6": "value"
"var6": "value",
"var7": "8080",
"var8": "true"
}

View file

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

View file

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

View file

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

View file

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

View file

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

View file

@ -0,0 +1,4 @@
{
"condition": "string1",
"variable1": "string1"
}

View file

@ -0,0 +1,4 @@
{
"condition": "no",
"variable1": "string1"
}

View file

@ -1,8 +1,8 @@
{
"errors": [],
"warnings": [
"variable \"var1\" (a first variable) is hidden, it will be ignored when loading from environment variable",
"variable \"var2\" (a first variable) is hidden, it will be ignored when loading from environment variable",
"variable \"var3\" (a second variable) is hidden, it will be ignored when loading from environment variable"
"variable \"var3\" (a second variable) is hidden, it will be ignored when loading from environment variable",
"variable \"var4\" (a forth variable) is hidden, it will be ignored when loading from environment variable"
]
}

View file

@ -2,3 +2,4 @@ ROUGAIL_CONDITION="True"
ROUGAIL_VAR1="string1"
ROUGAIL_VAR2="string1"
ROUGAIL_VAR3="string1"
ROUGAIL_VAR4="string1"

View file

@ -2,3 +2,4 @@ ROUGAIL_CONDITION="True"
ROUGAIL_VAR1="string1"
ROUGAIL_VAR2="string1"
ROUGAIL_VAR3="string1"
ROUGAIL_VAR4="string1"

View file

@ -1,6 +1,6 @@
{
"condition": true,
"var1": null,
"var1": "string1",
"var2": null,
"var3": null,
"var4": null

View file

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

View file

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

View file

@ -0,0 +1,2 @@
ROUGAIL_CONDITION="True"
ROUGAIL_VARIABLE="string1"

View file

@ -0,0 +1,2 @@
ROUGAIL_CONDITION="True"
ROUGAIL_VARIABLE="string1"

View file

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

View file

@ -0,0 +1,3 @@
{
"condition": true
}

View file

@ -0,0 +1,3 @@
{
"condition": true
}

View file

@ -0,0 +1,6 @@
{
"errors": [],
"warnings": [
"variable \"condition\" (a condition) is hidden, it will be ignored when loading from environment variable"
]
}

View file

@ -0,0 +1,4 @@
{
"errors": [],
"warnings": []
}

View file

@ -0,0 +1,2 @@
ROUGAIL_CONDITION="True"
ROUGAIL_VARIABLE="string1"

View file

@ -0,0 +1,2 @@
ROUGAIL_CONDITION="True"
ROUGAIL_VARIABLE="string1"

View file

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

View file

@ -0,0 +1,4 @@
{
"condition": false,
"variable": "string1"
}

View file

@ -0,0 +1,4 @@
{
"condition": false,
"variable": "string1"
}

View file

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

View file

@ -0,0 +1,4 @@
{
"errors": [],
"warnings": []
}

View file

@ -0,0 +1,2 @@
ROUGAIL_CONDITION="True"
ROUGAIL_VARIABLE="string1"

View file

@ -0,0 +1,2 @@
ROUGAIL_CONDITION="True"
ROUGAIL_VARIABLE="string1"

View file

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

View file

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

View file

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

View file

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

View file

@ -0,0 +1,4 @@
{
"errors": [],
"warnings": []
}

View file

@ -0,0 +1,2 @@
ROUGAIL_CONDITION="True"
ROUGAIL_VARIABLE="string1"

View file

@ -0,0 +1,2 @@
ROUGAIL_CONDITION="True"
ROUGAIL_VARIABLE="string1"

View file

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

View file

@ -0,0 +1,3 @@
{
"condition": true
}

View file

@ -0,0 +1,4 @@
{
"condition": false,
"variable": "string1"
}

View file

@ -0,0 +1,4 @@
{
"errors": [],
"warnings": []
}

View file

@ -0,0 +1,4 @@
{
"errors": [],
"warnings": []
}

View file

@ -0,0 +1,2 @@
ROUGAIL_CONDITION="True"
ROUGAIL_VARIABLE="string1"

View file

@ -0,0 +1,2 @@
ROUGAIL_CONDITION="True"
ROUGAIL_VARIABLE="string1"

View file

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

View file

@ -0,0 +1,3 @@
{
"condition": true
}

View file

@ -0,0 +1,3 @@
{
"condition": true
}

View file

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

View file

@ -0,0 +1,4 @@
{
"errors": [],
"warnings": []
}

View file

@ -0,0 +1,2 @@
ROUGAIL_CONDITION="True"
ROUGAIL_VARIABLE="string1"

View file

@ -0,0 +1,2 @@
ROUGAIL_CONDITION="True"
ROUGAIL_VARIABLE="string1"

View file

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

View file

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

View file

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

View file

@ -0,0 +1,4 @@
{
"errors": [],
"warnings": []
}

View file

@ -0,0 +1,4 @@
{
"errors": [],
"warnings": []
}

View file

@ -0,0 +1,2 @@
ROUGAIL_MY_FAMILY.DYNAMIC="string1,string2,string3"
ROUGAIL_MY_FAMILY.VAR="True"

View file

@ -0,0 +1,2 @@
ROUGAIL_MY_FAMILY.DYNAMIC="string1,string2,string3"
ROUGAIL_MY_FAMILY.VAR="True"

View file

@ -0,0 +1,8 @@
{
"my_family.dynamic": [
"string1",
"string2",
"string3"
],
"my_family.var": true
}

View file

@ -0,0 +1,7 @@
{
"my_family.dynamic": [
"val1",
"val2"
],
"my_family.var": true
}

View file

@ -0,0 +1,4 @@
{
"errors": [],
"warnings": []
}

View file

@ -0,0 +1,4 @@
{
"errors": [],
"warnings": []
}

View file

@ -0,0 +1 @@
ROUGAIL_MY_FAMILY.DEFAULT="True"

View file

@ -0,0 +1 @@
ROUGAIL_MY_FAMILY.DEFAULT="True"

View file

@ -0,0 +1,3 @@
{
"my_family.default": true
}

View file

@ -0,0 +1,3 @@
{
"my_family.default": true
}

View file

@ -4,3 +4,5 @@ ROUGAIL.VAR3="string1"
ROUGAIL.VAR4="string1"
ROUGAIL.VAR5="string1"
ROUGAIL.VAR6="string1"
ROUGAIL.VAR7="string1"
ROUGAIL.VAR8="string1"

View file

@ -4,3 +4,5 @@ ROUGAIL.VAR3="string1"
ROUGAIL.VAR4="string1"
ROUGAIL.VAR5="string1"
ROUGAIL.VAR6="string1"
ROUGAIL.VAR7="string1"
ROUGAIL.VAR8="string1"

View file

@ -4,5 +4,7 @@
"rougail.var3": "string1",
"rougail.var4": "string1",
"rougail.var5": "string1",
"rougail.var6": "string1"
"rougail.var6": "string1",
"rougail.var7": "string1",
"rougail.var8": "string1"
}

View file

@ -4,5 +4,7 @@
"rougail.var3": "string1",
"rougail.var4": "value",
"rougail.var5": "value",
"rougail.var6": "value"
"rougail.var6": "value",
"rougail.var7": "8080",
"rougail.var8": "true"
}

View file

@ -0,0 +1,6 @@
{
"errors": [],
"warnings": [
"variable \"rougail.variable2\" (a seconde variable) is disabled, it will be ignored when loading from environment variable"
]
}

View file

@ -0,0 +1,6 @@
{
"errors": [],
"warnings": [
"variable \"rougail.variable2\" (a seconde variable) is disabled, it will be ignored when loading from environment variable"
]
}

View file

@ -0,0 +1,3 @@
ROUGAIL.CONDITION="string1"
ROUGAIL.VARIABLE1="string1"
ROUGAIL.VARIABLE2="string1"

View file

@ -0,0 +1,3 @@
ROUGAIL.CONDITION="string1"
ROUGAIL.VARIABLE1="string1"
ROUGAIL.VARIABLE2="string1"

View file

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

View file

@ -0,0 +1,4 @@
{
"rougail.condition": "string1",
"rougail.variable1": "string1"
}

View file

@ -0,0 +1,4 @@
{
"rougail.condition": "no",
"rougail.variable1": "string1"
}

View file

@ -1,8 +1,8 @@
{
"errors": [],
"warnings": [
"variable \"rougail.var1\" (a first variable) is hidden, it will be ignored when loading from environment variable",
"variable \"rougail.var2\" (a first variable) is hidden, it will be ignored when loading from environment variable",
"variable \"rougail.var3\" (a second variable) is hidden, it will be ignored when loading from environment variable"
"variable \"rougail.var3\" (a second variable) is hidden, it will be ignored when loading from environment variable",
"variable \"rougail.var4\" (a forth variable) is hidden, it will be ignored when loading from environment variable"
]
}

View file

@ -2,3 +2,4 @@ ROUGAIL.CONDITION="True"
ROUGAIL.VAR1="string1"
ROUGAIL.VAR2="string1"
ROUGAIL.VAR3="string1"
ROUGAIL.VAR4="string1"

View file

@ -2,3 +2,4 @@ ROUGAIL.CONDITION="True"
ROUGAIL.VAR1="string1"
ROUGAIL.VAR2="string1"
ROUGAIL.VAR3="string1"
ROUGAIL.VAR4="string1"

View file

@ -1,6 +1,6 @@
{
"rougail.condition": true,
"rougail.var1": null,
"rougail.var1": "string1",
"rougail.var2": null,
"rougail.var3": null,
"rougail.var4": null

View file

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

View file

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

View file

@ -0,0 +1,2 @@
ROUGAIL.CONDITION="True"
ROUGAIL.VARIABLE="string1"

View file

@ -0,0 +1,2 @@
ROUGAIL.CONDITION="True"
ROUGAIL.VARIABLE="string1"

View file

@ -0,0 +1 @@
ROUGAIL.VARIABLE="string1"

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