Skip to content

Commit

Permalink
Add post processing functions to ofStudy. Correct issue with parsed d…
Browse files Browse the repository at this point in the history
…ictFile names during deepcopy.
  • Loading branch information
Marc Goldbach committed Mar 29, 2024
1 parent 26dc0ba commit 3340879
Show file tree
Hide file tree
Showing 3 changed files with 258 additions and 87 deletions.
2 changes: 1 addition & 1 deletion pyfoamd/config.ini
Original file line number Diff line number Diff line change
Expand Up @@ -3,5 +3,5 @@ debug = False
dict_filesize_limit = 10000000

[user]
debug = False
debug = True

30 changes: 19 additions & 11 deletions pyfoamd/functions/load.py
Original file line number Diff line number Diff line change
Expand Up @@ -65,6 +65,8 @@ def load(path=Path.cwd() / '.pyfoamd' / '_case.json', _backup=False):
setLoggerLevel("DEBUG" if getPyFoamdConfig('debug')
else "INFO")

logger.setLevel(logging.DEBUG)

if not path.is_file():
userMsg("No cached case data found. Run 'pf init'"\
" before 'pf edit'.", "WARNING")
Expand Down Expand Up @@ -149,7 +151,9 @@ def _parseCaseDict(obj, case=None, tabStr=None):
#TODO: simplify initialization
# obj_ = ofDictFile(_name= obj['_name'],
# _location=obj['_location'])
obj_ = ofDictFile(_name= obj['_name'])
obj_ = ofDictFile(_name= obj['_name'])
# obj_ = DictFileParser(case._path / obj._name).initOFDictFile()
obj_.__dict__.update({'_name': obj['_name']})
logger.debug(f"{tabStr}Defined obj_: {obj_}")
elif (obj['_type'] == 'ofList'
or obj['_type'] == 'ofSplitList'
Expand All @@ -174,15 +178,20 @@ def _parseCaseDict(obj, case=None, tabStr=None):
logger.debug(f"{tabStr}Parsing key {key}.")
if (key != '_type'
and not (not parseValue and key == '_value')):
logger.debug(f"{tabStr}Setting key {key}.")
value_ = _parseCaseDict(value, case, tabStr)
logger.debug(f"{tabStr}value_: {value_}")
logger.debug(f"{tabStr}obj_: {obj_}")
try:
setattr(obj_, key, value_)
except FrozenInstanceError:
logger.warning(f"{tabStr}Could not set frozen "\
f"instance key: {key}: {value}.")
if key == '_name':
obj_.__dict__.update({key: value})
else:
logger.debug(f"{tabStr}Setting key {key}.")
value_ = _parseCaseDict(value, case, tabStr)
logger.debug(f"{tabStr}value_: {value_}")
logger.debug(f"{tabStr}obj_: {obj_}")
try:
# setattr(obj_, key, value_)
obj_.__dict__.update({key: value_})

except FrozenInstanceError:
logger.warning(f"{tabStr}Could not set frozen "\
f"instance key: {key}: {value}.")
logger.debug(f"{tabStr}Returning {obj_}.")
return obj_
else:
Expand All @@ -193,6 +202,5 @@ def _parseCaseDict(obj, case=None, tabStr=None):

case_ = _parseCaseDict(caseDict)


if isinstance(case_, _ofCaseBase):
return case_
Loading

0 comments on commit 3340879

Please sign in to comment.