Source code for omfit_classes.omfit_gingred
try:
# framework is running
from .startup_choice import *
except ImportError as _excp:
# class is imported by itself
if (
'attempted relative import with no known parent package' in str(_excp)
or 'No module named \'omfit_classes\'' in str(_excp)
or "No module named '__main__.startup_choice'" in str(_excp)
):
from startup_choice import *
else:
raise
from omfit_classes.omfit_ascii import OMFITascii
__all__ = ['OMFITgingred']
[docs]class OMFITgingred(SortedDict, OMFITascii):
r"""
OMFIT class used to interface with GINGRED input files
:param filename: filename passed to OMFITascii class
:param \**kw: keyword dictionary passed to OMFITascii class
"""
def __init__(self, filename, **kw):
SortedDict.__init__(self)
OMFITascii.__init__(self, filename, **kw)
self.dynaLoad = True
[docs] @dynaLoad
def load(self):
with open(self.filename, 'r') as f:
lines = f.read()
lines = lines.replace('{', '[')
lines = lines.replace('}', ']')
for line in lines.split('\n'):
line = line.strip().split(';')[0].strip()
if not len(line):
continue
key, value = line.split('=')
try:
self[key.strip()] = eval(value.strip())
except NameError:
pass
[docs] @dynaSave
def save(self):
lines = []
for key, value in list(self.items()):
lines.append('%s = %s' % (key, value))
lines = '\n'.join(lines)
lines = lines.replace('[', '{')
lines = lines.replace(']', '}')
with open(self.filename, 'w') as f:
f.write(lines)