Compare commits
No commits in common. "148e55c80d8e98a8cbaed0ed43a1c21b136e0743" and "4ef86366796c71c2ad6b4d7a446b973dbdd95677" have entirely different histories.
148e55c80d
...
4ef8636679
12 changed files with 24 additions and 55 deletions
|
|
@ -1,9 +1,3 @@
|
||||||
## 1.0.1 (2026-07-06)
|
|
||||||
|
|
||||||
### Fix
|
|
||||||
|
|
||||||
- output json is more modular for hcl
|
|
||||||
|
|
||||||
## 1.0.0 (2026-06-21)
|
## 1.0.0 (2026-06-21)
|
||||||
|
|
||||||
### Feat
|
### Feat
|
||||||
|
|
|
||||||
|
|
@ -4,7 +4,7 @@ requires = ["flit_core >=3.8.0,<4"]
|
||||||
|
|
||||||
[project]
|
[project]
|
||||||
name = "rougail.output_json"
|
name = "rougail.output_json"
|
||||||
version = "1.0.1"
|
version = "1.0.0"
|
||||||
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"
|
||||||
|
|
|
||||||
|
|
@ -126,58 +126,49 @@ class RougailOutputJson:
|
||||||
|
|
||||||
def parse_family(
|
def parse_family(
|
||||||
self,
|
self,
|
||||||
parent,
|
conf,
|
||||||
parent_obj,
|
child,
|
||||||
namespace,
|
namespace,
|
||||||
):
|
):
|
||||||
for child in parent:
|
for option in conf:
|
||||||
if child.isoptiondescription():
|
if option.isoptiondescription():
|
||||||
if child.isleadership():
|
if option.isleadership():
|
||||||
child_obj = []
|
parent = []
|
||||||
self.parse_sequence(
|
self.parse_sequence(
|
||||||
child,
|
option,
|
||||||
child_obj,
|
parent,
|
||||||
)
|
)
|
||||||
else:
|
else:
|
||||||
if (
|
if (
|
||||||
namespace is None
|
namespace is None
|
||||||
and self.support_namespace
|
and self.support_namespace
|
||||||
and child.group_type() is groups.namespace
|
and option.group_type() is groups.namespace
|
||||||
):
|
):
|
||||||
subnamespace = child.name()
|
subnamespace = option.name()
|
||||||
else:
|
else:
|
||||||
subnamespace = namespace
|
subnamespace = namespace
|
||||||
child_obj = self.get_default_family(child)
|
parent = {}
|
||||||
self.parse_family(child, child_obj, subnamespace)
|
self.parse_family(option, parent, subnamespace)
|
||||||
self.family_informations(parent, parent_obj, child, child_obj)
|
child[option.name()] = parent
|
||||||
else:
|
else:
|
||||||
self.variable_informations(parent_obj, child)
|
child[option.name()] = option.value.get()
|
||||||
|
|
||||||
def parse_sequence(
|
def parse_sequence(
|
||||||
self,
|
self,
|
||||||
child,
|
conf,
|
||||||
obj,
|
parent,
|
||||||
):
|
):
|
||||||
leader, *followers = list(child)
|
leader, *followers = list(conf)
|
||||||
leader_values = leader.value.get()
|
leader_values = leader.value.get()
|
||||||
for idx, leader_value in enumerate(leader_values):
|
for idx, leader_value in enumerate(leader_values):
|
||||||
leader_dict = {leader.name(): leader_value}
|
leader_dict = {leader.name(): leader_value}
|
||||||
obj.append(leader_dict)
|
parent.append(leader_dict)
|
||||||
for follower in list(followers):
|
for follower in list(followers):
|
||||||
if follower.index() != idx:
|
if follower.index() != idx:
|
||||||
continue
|
continue
|
||||||
followers.remove(follower)
|
followers.remove(follower)
|
||||||
leader_dict[follower.name()] = follower.value.get()
|
leader_dict[follower.name()] = follower.value.get()
|
||||||
|
|
||||||
def get_default_family(self, child):
|
|
||||||
return dict()
|
|
||||||
|
|
||||||
def family_informations(self, parent, parent_obj, child, child_obj):
|
|
||||||
parent_obj[child.name()] = child_obj
|
|
||||||
|
|
||||||
def variable_informations(self, parent_obj, child):
|
|
||||||
parent_obj[child.name()] = child.value.get()
|
|
||||||
|
|
||||||
|
|
||||||
RougailOutput = RougailOutputJson
|
RougailOutput = RougailOutputJson
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1 +1 @@
|
||||||
__version__ = "1.0.1"
|
__version__ = "1.0.0"
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,4 @@
|
||||||
{
|
{
|
||||||
"var1": "string1",
|
"var1": "string1",
|
||||||
"var2": "string1",
|
"var2": "string1"
|
||||||
"var3": "string1"
|
|
||||||
}
|
}
|
||||||
|
|
@ -4,8 +4,5 @@
|
||||||
},
|
},
|
||||||
"family2": {
|
"family2": {
|
||||||
"var": "string1"
|
"var": "string1"
|
||||||
},
|
|
||||||
"family3": {
|
|
||||||
"var": "string1"
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -1,7 +1,6 @@
|
||||||
{
|
{
|
||||||
"rougail": {
|
"rougail": {
|
||||||
"var1": "string1",
|
"var1": "string1",
|
||||||
"var2": "string1",
|
"var2": "string1"
|
||||||
"var3": "string1"
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -5,9 +5,6 @@
|
||||||
},
|
},
|
||||||
"family2": {
|
"family2": {
|
||||||
"var": "string1"
|
"var": "string1"
|
||||||
},
|
|
||||||
"family3": {
|
|
||||||
"var": "string1"
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -1,7 +1,6 @@
|
||||||
{
|
{
|
||||||
"rougail": {
|
"rougail": {
|
||||||
"var1": null,
|
"var1": null,
|
||||||
"var2": null,
|
"var2": null
|
||||||
"var3": null
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -5,9 +5,6 @@
|
||||||
},
|
},
|
||||||
"family2": {
|
"family2": {
|
||||||
"var": null
|
"var": null
|
||||||
},
|
|
||||||
"family3": {
|
|
||||||
"var": null
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -1,5 +1,4 @@
|
||||||
{
|
{
|
||||||
"var1": null,
|
"var1": null,
|
||||||
"var2": null,
|
"var2": null
|
||||||
"var3": null
|
|
||||||
}
|
}
|
||||||
|
|
@ -4,8 +4,5 @@
|
||||||
},
|
},
|
||||||
"family2": {
|
"family2": {
|
||||||
"var": null
|
"var": null
|
||||||
},
|
|
||||||
"family3": {
|
|
||||||
"var": null
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
Loading…
Reference in a new issue