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)