Compare commits

..

No commits in common. "660d7813183ae2982063da00489a740ab5373a17" and "1ad59989301095999b26b268fce04bba34f6c5f4" have entirely different histories.

2024 changed files with 1977 additions and 2602 deletions

View file

@ -1,9 +1,3 @@
## 0.2.0a3 (2025-03-19)
### Feat
- add json.get to have sub variables
## 0.2.0a2 (2025-02-17) ## 0.2.0a2 (2025-02-17)
### Fix ### Fix

View file

@ -4,7 +4,7 @@ requires = ["flit_core >=3.8.0,<4"]
[project] [project]
name = "rougail.output_json" name = "rougail.output_json"
version = "0.2.0a3" version = "0.2.0a2"
authors = [{name = "Emmanuel Garette", email = "gnunux@gnunux.info"}] authors = [{name = "Emmanuel Garette", email = "gnunux@gnunux.info"}]
readme = "README.md" readme = "README.md"
description = "Rougail output json" description = "Rougail output json"

View file

@ -56,16 +56,11 @@ class RougailOutputJson:
self.warnings = [] self.warnings = []
self.read_write = self.rougailconfig["json.read_write"] self.read_write = self.rougailconfig["json.read_write"]
self.is_mandatory = self.rougailconfig["json.mandatory"] self.is_mandatory = self.rougailconfig["json.mandatory"]
self.get = self.rougailconfig["json.get"]
self.dico = {} self.dico = {}
def run(self) -> None: def run(self) -> None:
ret = self.exporter() ret = self.exporter()
if isinstance(self.dico, str): return ret, dumps(self.dico, ensure_ascii=False, indent=2) + '\n'
value = self.dico
else:
value = dumps(self.dico, ensure_ascii=False, indent=2)
return ret, value
def print(self) -> str: def print(self) -> str:
ret, data = self.run() ret, data = self.run()
@ -75,21 +70,14 @@ class RougailOutputJson:
def exporter(self) -> None: def exporter(self) -> None:
self.config.property.read_write() self.config.property.read_write()
self.mandatory() self.mandatory()
self.manage_warnings()
self.config.property.read_only() self.config.property.read_only()
if self.manage_errors(): if self.manage_errors():
return False return False
self.manage_warnings()
if self.read_write: if self.read_write:
self.config.property.read_write() self.config.property.read_write()
if self.get:
config = self.config.option(self.get)
if not config.isoptiondescription():
self.dico = config.value.get()
return True
else:
config = self.config
self.parse_family( self.parse_family(
config, self.config,
self.dico, self.dico,
) )
return True return True
@ -138,7 +126,6 @@ class RougailOutputJson:
if not self.errors: if not self.errors:
return False return False
self.dico = {"_errors": self.errors} self.dico = {"_errors": self.errors}
self.manage_warnings()
return True return True
def parse_family( def parse_family(

View file

@ -17,36 +17,29 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
""" """
from pathlib import Path from pathlib import Path
from .i18n import _
def get_rougail_config( def get_rougail_config(
*, *,
backward_compatibility=True, backward_compatibility=True,
) -> dict: ) -> dict:
options = f""" options = """
json: json:
description: {_('configuration rougail-json')} description: Configuration rougail-json
disabled: disabled:
type: jinja type: jinja
jinja: | jinja: |
{{% if step.output is propertyerror or step.output != 'json' %}} {% if step.output != 'json' %}
disabled disabled
{{% endif %}} {% endif %}
read_write: read_write:
description: {_('display variables available in read_write mode')} description: Display variables available in read_write mode
negative_description: {_('display variables available in read_only mode')} negative_description: Display variables available in read_only mode
default: false default: false
mandatory: mandatory:
description: {_('test mandatories variable before display in json')} description: Test mandatories variable before display in json
negative_description: {_('do not test mandatories variable before display in json')} negative_description: Do not test mandatories variable before display in json
default: true default: true
get:
description: {_('get value for a variable or a family')}
mandatory: false
""" """
return { return {
"name": "json", "name": "json",

View file

@ -1,12 +0,0 @@
{
"condition": [
"string1",
"string2",
"string3"
],
"variable": [
"string1",
"string2",
"string3"
]
}

View file

@ -1,12 +0,0 @@
{
"condition": [
"string1",
"string2",
"string3"
],
"variable": [
"string1",
"string2",
"string3"
]
}

View file

@ -1,14 +0,0 @@
{
"var": [
"val.1",
"val.2"
],
"dynval_1": {
"var1": "string1",
"var2": "string1"
},
"dynval_2": {
"var1": "string1",
"var2": "string1"
}
}

View file

@ -1,12 +0,0 @@
{
"condition": [
"string1",
"string2",
"string3"
],
"variable": [
"string1",
"string2",
"string3"
]
}

View file

@ -1,12 +0,0 @@
{
"condition": [
"string1",
"string2",
"string3"
],
"variable": [
"string1",
"string2",
"string3"
]
}

View file

@ -1,14 +0,0 @@
{
"var": [
"val.1",
"val.2"
],
"dynval_1": {
"var1": "string1",
"var2": "string1"
},
"dynval_2": {
"var1": "string1",
"var2": "string1"
}
}

View file

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

View file

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

View file

@ -1,14 +0,0 @@
{
"rougail": {
"condition": [
"string1",
"string2",
"string3"
],
"variable": [
"string1",
"string2",
"string3"
]
}
}

View file

@ -1,14 +0,0 @@
{
"rougail": {
"condition": [
"string1",
"string2",
"string3"
],
"variable": [
"string1",
"string2",
"string3"
]
}
}

View file

@ -1,16 +0,0 @@
{
"rougail": {
"var": [
"val.1",
"val.2"
],
"dynval_1": {
"var1": "string1",
"var2": "string1"
},
"dynval_2": {
"var1": "string1",
"var2": "string1"
}
}
}

View file

@ -1,11 +0,0 @@
{
"rougail": {
"var1": [
"val1"
],
"dynval1": {
"var": "string1"
},
"var2": "string1"
}
}

View file

@ -1,15 +0,0 @@
{
"rougail": {
"var2": "string1",
"var1": [
"val1",
"val2"
],
"dynval1": {
"var": "string1"
},
"dynval2": {
"var": "string1"
}
}
}

View file

@ -1,19 +0,0 @@
{
"rougail": {
"var": [
"val1",
"val2"
],
"my_dyn_family_val1": {
"var": "string1"
},
"my_dyn_family_val2": {
"var": "string1"
},
"var2": [
"string1",
"string2",
"string3"
]
}
}

View file

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

View file

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

View file

@ -1,14 +0,0 @@
{
"rougail": {
"condition": [
"string1",
"string2",
"string3"
],
"variable": [
"string1",
"string2",
"string3"
]
}
}

View file

@ -1,14 +0,0 @@
{
"rougail": {
"condition": [
"string1",
"string2",
"string3"
],
"variable": [
"string1",
"string2",
"string3"
]
}
}

View file

@ -1,16 +0,0 @@
{
"rougail": {
"var": [
"val.1",
"val.2"
],
"dynval_1": {
"var1": "string1",
"var2": "string1"
},
"dynval_2": {
"var1": "string1",
"var2": "string1"
}
}
}

View file

@ -1,11 +0,0 @@
{
"rougail": {
"var1": [
"val1"
],
"dynval1": {
"var": "string1"
},
"var2": "string1"
}
}

View file

@ -1,15 +0,0 @@
{
"rougail": {
"var2": "string1",
"var1": [
"val1",
"val2"
],
"dynval1": {
"var": "string1"
},
"dynval2": {
"var": "string1"
}
}
}

View file

@ -1,19 +0,0 @@
{
"rougail": {
"var": [
"val1",
"val2"
],
"my_dyn_family_val1": {
"var": "string1"
},
"my_dyn_family_val2": {
"var": "string1"
},
"var2": [
"string1",
"string2",
"string3"
]
}
}

View file

@ -1,5 +0,0 @@
{
"rougail": {
"variable": "Rougail"
}
}

View file

@ -1,5 +0,0 @@
{
"rougail": {
"variable": "Rougail"
}
}

View file

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

View file

@ -1,9 +0,0 @@
{
"rougail": {
"condition": [
"val1",
"val2"
],
"variable": []
}
}

View file

@ -1,16 +0,0 @@
{
"rougail": {
"var": [
"val.1",
"val.2"
],
"dynval_1": {
"var1": "val.1",
"var2": "val.1"
},
"dynval_2": {
"var1": "val.2",
"var2": "val.2"
}
}
}

View file

@ -1,6 +0,0 @@
{
"rougail": {
"var1": [],
"var2": null
}
}

View file

@ -1,6 +0,0 @@
{
"rougail": {
"var2": null,
"var1": []
}
}

View file

@ -1,18 +0,0 @@
{
"rougail": {
"var": [
"val1",
"val2"
],
"my_dyn_family_val1": {
"var": "val1"
},
"my_dyn_family_val2": {
"var": "val2"
},
"var2": [
"val1",
"val2"
]
}
}

View file

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

View file

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

View file

@ -1,14 +0,0 @@
{
"rougail": {
"condition": [
"string1",
"string2",
"string3"
],
"variable": [
"string1",
"string2",
"string3"
]
}
}

View file

@ -1,14 +0,0 @@
{
"rougail": {
"condition": [
"string1",
"string2",
"string3"
],
"variable": [
"string1",
"string2",
"string3"
]
}
}

View file

@ -1,16 +0,0 @@
{
"rougail": {
"var": [
"val.1",
"val.2"
],
"dynval_1": {
"var1": "string1",
"var2": "string1"
},
"dynval_2": {
"var1": "string1",
"var2": "string1"
}
}
}

View file

@ -1,11 +0,0 @@
{
"rougail": {
"var1": [
"val1"
],
"dynval1": {
"var": "string1"
},
"var2": "string1"
}
}

View file

@ -1,15 +0,0 @@
{
"rougail": {
"var2": "string1",
"var1": [
"val1",
"val2"
],
"dynval1": {
"var": "string1"
},
"dynval2": {
"var": "string1"
}
}
}

View file

@ -1,19 +0,0 @@
{
"rougail": {
"var": [
"val1",
"val2"
],
"my_dyn_family_val1": {
"var": "string1"
},
"my_dyn_family_val2": {
"var": "string1"
},
"var2": [
"string1",
"string2",
"string3"
]
}
}

View file

@ -1,5 +0,0 @@
{
"rougail": {
"variable": "Rougail"
}
}

View file

@ -1,5 +0,0 @@
{
"rougail": {
"variable": "Rougail"
}
}

View file

@ -1,6 +0,0 @@
{
"_errors": [
"The following variables are mandatory but have no value:",
" - rougail.condition (a condition)"
]
}

View file

@ -1,6 +0,0 @@
{
"_errors": [
"The following variables are mandatory but have no value:",
" - rougail.variable (a variable)"
]
}

View file

@ -1,16 +0,0 @@
{
"rougail": {
"var": [
"val.1",
"val.2"
],
"dynval_1": {
"var1": "val.1",
"var2": "val.1"
},
"dynval_2": {
"var1": "val.2",
"var2": "val.2"
}
}
}

View file

@ -1,6 +0,0 @@
{
"_errors": [
"The following variables are mandatory but have no value:",
" - rougail.var2 (A variable calculated)"
]
}

View file

@ -1,6 +0,0 @@
{
"_errors": [
"The following variables are mandatory but have no value:",
" - rougail.var2 (A variable calculated)"
]
}

View file

@ -1,18 +0,0 @@
{
"rougail": {
"var": [
"val1",
"val2"
],
"my_dyn_family_val1": {
"var": "val1"
},
"my_dyn_family_val2": {
"var": "val2"
},
"var2": [
"val1",
"val2"
]
}
}

View file

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

View file

@ -1,7 +0,0 @@
{
"condition": [
"val1",
"val2"
],
"variable": []
}

View file

@ -1,14 +0,0 @@
{
"var": [
"val.1",
"val.2"
],
"dynval_1": {
"var1": "val.1",
"var2": "val.1"
},
"dynval_2": {
"var1": "val.2",
"var2": "val.2"
}
}

View file

@ -1,12 +0,0 @@
{
"condition": [
"string1",
"string2",
"string3"
],
"variable": [
"string1",
"string2",
"string3"
]
}

View file

@ -1,12 +0,0 @@
{
"condition": [
"string1",
"string2",
"string3"
],
"variable": [
"string1",
"string2",
"string3"
]
}

View file

@ -1,14 +0,0 @@
{
"var": [
"val.1",
"val.2"
],
"dynval_1": {
"var1": "string1",
"var2": "string1"
},
"dynval_2": {
"var1": "string1",
"var2": "string1"
}
}

View file

@ -1,6 +0,0 @@
{
"_errors": [
"The following variables are mandatory but have no value:",
" - condition (a condition)"
]
}

View file

@ -1,6 +0,0 @@
{
"_errors": [
"The following variables are mandatory but have no value:",
" - variable (a variable)"
]
}

View file

@ -1,14 +0,0 @@
{
"var": [
"val.1",
"val.2"
],
"dynval_1": {
"var1": "val.1",
"var2": "val.1"
},
"dynval_2": {
"var1": "val.2",
"var2": "val.2"
}
}