Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
36 commits
Select commit Hold shift + click to select a range
ec90e45
Start of dotdict section (intermediate backup)
HolQue Jul 7, 2023
3021bd8
Revert "Start of dotdict section (intermediate backup)"
HolQue Jul 7, 2023
c00f377
Intermediate maintenance
HolQue Jul 7, 2023
e3b251e
Merge branch 'develop' into HolQue/task/documentation_maintenance
HolQue Jul 7, 2023
289b364
dotdict examples added
HolQue Jul 7, 2023
ce54843
VSCodium screenshots added
HolQue Jul 7, 2023
0f6cce0
Added section for implicit dictionary creation
HolQue Jul 10, 2023
73e8e4c
Small update
HolQue Jul 11, 2023
a108701
Fix the issue when handling nested params in list
namsonx Jul 12, 2023
6a0cd5b
Takeover of checklist from issue 95
HolQue Jul 12, 2023
943e05d
Rework of some test cases; new test cases added
HolQue Jul 12, 2023
2c26257
Merge remote-tracking branch 'origin/namsonx/fixbug/handle_nested_par…
HolQue Jul 12, 2023
bde6eb2
Command line extensions for component_test.py
HolQue Jul 13, 2023
2c21fc9
readme.rst added (component test documentation)
HolQue Jul 13, 2023
5016f9a
tiny fix
HolQue Jul 13, 2023
24dad35
some docu fixes
HolQue Jul 13, 2023
0b038f3
Some bugfixes and code maintenance
HolQue Jul 14, 2023
8874ee5
Added first tests of "SECTION": "VALUE_DETECTION"
HolQue Jul 14, 2023
49aeb29
Further test cases added; code maintenance
HolQue Jul 17, 2023
12204db
Adds reset function to avoid memory interference.
namsonx Jul 17, 2023
770605a
Some test cases extended, parameters changed
HolQue Jul 17, 2023
ab0cf1a
Merge remote-tracking branch 'origin/namsonx/fixbug/98/memory_interfe…
HolQue Jul 17, 2023
4171785
Some test cases added; maintenance
HolQue Jul 17, 2023
89ece40
Further test cases added; code maintenance
HolQue Jul 18, 2023
0eaf4f1
Further test cases added
HolQue Jul 18, 2023
2e9b614
Documentation restructured
HolQue Jul 18, 2023
cfef75c
Documentation maintenance
HolQue Jul 25, 2023
3c634eb
Tiny maintenance
HolQue Jul 26, 2023
1a84273
Tiny maintenance (2)
HolQue Jul 27, 2023
e50007c
Maintenance of some self test cases; parsing strategies added in test…
HolQue Jul 27, 2023
22a2749
Checklist maintenance
HolQue Jul 28, 2023
605322b
Checklist maintenance (2)
HolQue Jul 28, 2023
32f66ba
Checklist maintenance (3)
HolQue Jul 28, 2023
99dcd88
Checklist maintenance (4)
HolQue Jul 28, 2023
52ba5ac
Update of component_test.py and documentation
HolQue Jul 28, 2023
c70f12a
removed unwanted batch file
HolQue Jul 28, 2023
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
55 changes: 46 additions & 9 deletions JsonPreprocessor/CJsonPreprocessor.py
Original file line number Diff line number Diff line change
Expand Up @@ -184,6 +184,16 @@ def __init__(self, syntax: CSyntaxType = CSyntaxType.json , currentCfg : dict =
self.lNestedParams = []
self.lDotInParamName = []

def __reset(self) -> None:
'''
Reset initial variables which are set in constructor method after master Json file is loaded.
'''
self.lImportedFiles = []
self.recursive_level = 0
self.lUpdatedParams = {}
self.lNestedParams = []
self.lDotInParamName = []

def __sNormalizePath(self, sPath : str) -> str:
"""
Python struggles with
Expand Down Expand Up @@ -664,6 +674,18 @@ def __handleStrNoneTrueFalse(objJson):
else:
oJson[k] = v
return oJson

def __handleListElements(sInput : str) -> str:
items = re.split("\s*,\s*", sInput)
j=0
newItem = ""
for item in items:
j+=1
if j<len(items):
newItem = newItem + self.__checkAndUpdateKeyValue(item) + ","
else:
newItem = newItem + self.__checkAndUpdateKeyValue(item)
return newItem

jFile=jFile.strip()

Expand Down Expand Up @@ -699,15 +721,28 @@ def __handleStrNoneTrueFalse(objJson):
for item in items:
i+=1
newSubItem = ""
if re.search("\s*\[[^\[\]]*\]\s*,*\s*", item):
subItems = re.split("\s*,\s*", item)
j=0
for subItem in subItems:
j+=1
if j<len(subItems):
newSubItem = newSubItem + self.__checkAndUpdateKeyValue(subItem) + ","
else:
newSubItem = newSubItem + self.__checkAndUpdateKeyValue(subItem)
if re.search("^\s*\[.+\]\s*,*\s*$", item) and item.count('[')==item.count(']'):
item = item.strip()
bLastElement = True
if item.endswith(","):
bLastElement = False
item = re.sub("^\[", "", item)
item = re.sub("\s*\]\s*,*$", "", item)
newSubItem = __handleListElements(item)
newSubItem = "[" + newSubItem + "]" if bLastElement else "[" + newSubItem + "],"
elif re.search("^\s*\[.*\${.+", item):
item = item.strip()
item = re.sub("^\[", "", item)
newSubItem = __handleListElements(item)
newSubItem = "[" + newSubItem
elif re.search("]\s*,*\s*", item) and item.count('[') < item.count(']'):
item = item.rstrip()
bLastElement = True
if item.endswith(","):
bLastElement = False
item = re.sub("\s*\]\s*,*$", "", item)
newSubItem = __handleListElements(item)
newSubItem = newSubItem + "]" if bLastElement else newSubItem + "],"
else:
newSubItem = self.__checkAndUpdateKeyValue(item)
if i<len(items):
Expand Down Expand Up @@ -778,5 +813,7 @@ def __handleStrNoneTrueFalse(objJson):
exec(sExec, globals(), ldict)
except:
raise Exception(f"The variable '{parseNestedParam[0]}' is not available!")

self.__reset()

return oJson
Binary file modified JsonPreprocessor/JsonPreprocessor.pdf
Binary file not shown.
Loading